Не удалось загрузить платформу на стороне клиента ASP.NET Ajax. когда класть ScriptManager на пустую страницу
У меня ошибка Ошибка выполнения Microsoft JScript: не удалось загрузить платформу на стороне клиента ASP.NET Ajax. на пустой странице с помощью главной страницы
![enter image description here]()
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnableCdn="True">
</asp:ScriptManager>
</form>
</body>
</html>
Это то, что он делает его концом
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
</title></head>
<body>
<form method="post" action="WebForm2.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNjE2OTgwNTY5ZGTfWA/dEX85PXBlbkKsVxeLKyIn+mJQ9piW5cbeNE+qww==" />
</div>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<script src="http://ajax.microsoft.com/ajax/4.0/2/WebForms.js" type="text/javascript"></script>
<script src="/ScriptResource.axd?d=6x_aX-LOcgUU-O_K6nM7ST5ViC_naT1e4_j-CY35ASRLpcKYpiapwTARuePHvx3llP-Xhl_AG_ubpM1BzkM5iyn9ThB3m7lmXKvkck0cxTcYiT-VbeKgamKxp9EwxBUyIQN6sSCU9SQm3tMtmzQWRg2&t=ffffffffbad362a4" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.');
//]]>
</script>
<script src="/ScriptResource.axd?d=khKEuZ4oUqBYvQxJ1ISpPVIW8_AWWc907q5_v74DI2ruWKTJpldq2osxPkAZ__hffe1Q6HTQUyTbL3Q1mD6MX7V65O5ibxKwb4NvN6ycdZ8vEJ-bz51MO-8uoaP2xioK6npm5n8vldI1d0sOCnH6yw2&t=ffffffffbad362a4" type="text/javascript"></script>
<div>
</div>
<script type="text/javascript">
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ScriptManager1', 'form1', [], [], [], 90, '');
//]]>
</script>
</form>
</body>
</html>
Проблемы могут заключаться в том, что у меня был AjaxControlToolkit в моем проекте, но позже я использовал jquery. поэтому где-то в проекте может попытаться добавить Ajaxcontroltoolkit, который я не могу найти. Я не знаю, как исправить эту ошибку. Я попытался добавить файл bin ajaxcontroltoolkit назад, но он, похоже, не работает.
Ответы
Ответ 1
Sys undefined означает, что вы не загружаете файлы на стороне клиента в свой браузер.
Решение 1:
<add verb="GET"
path="ScriptResource.axd"
type="Microsoft.Web.Handlers.ScriptResourceHandler"
validate="false"/>
Решение 2: Если у вас этого нет, добавьте это тоже под <assemblies>
<add assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
Решение3: Если это не сработает, попробуйте удалить файлы из папки "bin" и перестроить решение и очистить кеш браузера. p >
Решение 4: Добавьте это в свой web.config
<location path="ScriptResource.axd">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Ответ 2
это решение работает для меня:
Ошибка на клиенте:
SCRIPT5022: ASP.NET Ajax на стороне клиента не удалось загрузить.
SCRIPT5009: "Sys" - undefined
После многократного размазывания сайтов и других решений я решаю проблему:
решение для .NET 4.0:
Задайте свойство EnableCdn менеджера script равным true, например:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnableCdn="true">
Следующее решение и лучшее решение:
добавьте этот обработчик в ваш web.config
<system.webServer>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<remove name="ScriptHandlerFactory"/>
<remove name="ScriptHandlerFactoryAppServices"/>
<remove name="ScriptResource"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>
</system.webServer>
Ответ 3
для веб-ресурсов telerik используйте этот код:
<location path="Telerik.Web.UI.WebResource.axd">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
Ответ 4
Другой возможной причиной является script объединение/сжатие в IE 8 и 9. В web.config на верхнем уровне (внутри Конфигурации) поместите
<system.web.extensions>
<scripting>
<scriptResourceHandler enableCompression="false" enableCaching="true" />
</scripting>
</system.web.extensions>
На вашем ToolKitScriptManager добавьте CombineScripts = False, например.
<asp:ToolkitScriptManager runat="server" CombineScripts="False">
</asp:ToolkitScriptManager>
см. http://robmzd.blogspot.com/2010/02/invalid-character-error.html, где я выяснил проблему
Ответ 5
У меня возникла эта проблема, когда я переместил свои формы на новый сервер. Я потратил несколько часов, чтобы найти решение.
Проблема заключалась в том, что новый сервер имеет ASP.NET 4.0, а мой web.config - это ASP.NET 3.5. Поэтому я создал новый web.config, и теперь все в порядке.
Ответ 6
Просто добавьте раздел <handlers>
, как показано ниже, в ваш web.config в <system.webServer>
, и это устранит проблему в кратчайшие сроки.
<system.webServer>
.
.
.
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<remove name="ScriptHandlerFactory"/>
<remove name="ScriptHandlerFactoryAppServices"/>
<remove name="ScriptResource"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>
</system.webServer>
Ответ 7
Для меня это была проблема с кодом Global.asax,
Просто проверьте условие ниже перед проверкой сеанса в Application_PreRequestHandlerExecute
Request.Path.ToUpper() != Constants.AliasName.ToUpper() + "SCRIPTRESOURCE.AXD"
Функциональный код показан ниже,
protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e)
{
if ((Request.Path != Constants.DebugLoginUrl) &&
(Request.Path != Constants.SessionTimeOut) &&
(Request.Path.ToUpper() != Constants.AliasName.ToUpper() + "TRACE.AXD") &&
(Request.Path.ToUpper() != Constants.AliasName.ToUpper() + "SCRIPTRESOURCE.AXD"))
{
// to prevent check of HTTP HANDLER FLUSH - Session State is Invalid
if (HttpContext.Current.Session != null)
{
if (Session[Constants.personId] == null)
{
//your code
}
else
{
Response.Redirect(Constants.SessionTimeOut);
}
}
}
Ответ 8
Я включил Маршрутизацию WebForms и забыл добавить исключение для ресурсов:
routes.Ignore("{resource}.axd/{*pathInfo}");
Ответ 9
В моем случае ошибка загрузки Ajax произошла, только если я перезагрузил страницу, а не когда страница была загружена в первый раз.
Посмотрев на содержимое в теге в Site.Master, я заметил, что только некоторые из элементов имеют атрибут Path. Итак, я обновил MsAjaxBundle до этого: проблема исчезла. Мне также пришлось изменить WebFormsBundle таким же образом, и теперь перезагрузка страницы работает.
Ответ 10
Для меня работала загрузка ASP.NET Ajax из Microsoft.
Вам также может потребоваться явно просмотреть правильную версию dll при добавлении ссылки, например.
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Web.Extensions.dll
Ответ 11
Я устанавливаю Application Pool как ASP.NET 4.0 Classic во время установки.
Ответ 12
Ну, я просто изменил RadScriptManger на Simple asp: ScriptManager и работает
До:
<telerik:RadScriptManager ID="RadScriptManager1" EnableCdn="true" runat="server" />
После
<asp:ScriptManager ID="scrReg" EnablePartialRendering="true" runat="server"></asp:ScriptManager>
Надеюсь, что это поможет
Ответ 13
Добавьте EnableScriptCombine = "False" в свой RadScriptManager следующим образом:
<telerik:RadScriptManager ID="RadScriptManager1" EnableScriptCombine="False" runat="server" />
Ответ 14
И вот еще одна причина. Я установил MySQL Connector/net 6.9.5. Позже я начал получать страшные "sys undefined" для всех в некоторых, но не во всех проектах в IE. Много-много часов спустя я пробовал Chrome и Opera, и первая страница открылась нормально, но после ответа все переменные сеанса исчезли. Это, когда пенни, наконец, упали - Connector/net должен был настроить поставщика состояния сеанса, но у меня не было ничего для состояния сеанса в web.config для неудачных проектов. Sessionstate inproc исправил это немедленно. По крайней мере, я думаю, что случилось...
Ответ 15
В моем случае я оказался с указанными обработчиками в <httpHandlers>
, а также в <handlers>
.
Удаление раздела <httpHandlers>
исправлено.
Ответ 16
После добавления ссылки System.Web.MVC на мой ASP.NET и добавленного маршрута по умолчанию в global.asax
т.е.
RouteTable.Routes.MapRoute("Default", "{controller}/{action}/{id}",
new { controller = "new", action = "Index", id = "" });
}
Начало получения ошибки
Добавлена строка ниже для global.asax.cs для ее разрешения
RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
Ответ 17
Для тех, кто работает с шаблоном проекта WebForms Visual Studio 2015 ASP.NET 4.5 WebForms, который связывает сценарии ASP.NET AJAX:
fooobar.com/questions/325519/...
Ответ 18
для меня веб-конфиг был правильным.
если веб-конфиг правильный, то
проверьте настройки IIS App pool
в моем случае App pool pipeline
был выбран в качестве классического встроенного конвейера, который я сделал, и он начал работать.
Перейдите на страницу iis ->, щелкнув правой кнопкой мыши пул приложений. -> Дополнительные настройки ->. Управляемый конвейерный режим -> "интегрированный" -> нормально
Ответ 19
Я использую проект веб-приложения Visual Studio 2015 ASP.NET 4.5 Web Forms, и, вероятно, неправильный маршрут в контроллере API также приведет к этой ошибке. Я исправил маршрут и ошибка ушла.
Конечно, было бы неплохо для более описательного сообщения об ошибке, почему клиентская среда не загружается. Я потратил часы на проверку настроек web.config, очистку временных каталогов .net, проверку global.ascx и т.д. Странно то, что, пока IE 11 не работал при загрузке default.aspx, chrome смог загрузить default.aspx и веб-сайт. ,
Ответ 20
Попробуйте изменить в файле web.config значение false:
<compilation debug="false" targetFramework="4.5">