Теперь я получаю сообщение «Не удалось загрузить клиентскую среду ASP.NET Ajax».Ошибка javascript на моем веб-сайте asp.net 4, как только я его запустил (откройте страницу входа).
Раньше это происходило только после того, как я нажал Ctrl-F5 (обновить страницу и все изображения / таблицы стилей / скрипты) в браузере во время отладки.
Мое приложение использует asp.net 4 (изначально написано на1.1 или 2), WCF, JsTree, некоторые элементы управления Telerik и расширения / инструментарий MS AJAX.
За несколько дней поиска в Google я обнаружил большое количество решений, предоставленных людьми с одинаковымипроблема (в том числе здесь, на SO и справочных форумах Telerik):
Я попробовал следующее, у меня не получилось ни одного:
- Попытка поместить ToolkitScriptManager на страницу вместо ScriptManager
- Переход к панели управления «Программы и компоненты» и «восстановление» в «Microsoft .net framework 4 Профиль клиента» и «Microsoft .net Framework 4 Extended»
- Перемещение ScriptManager внижняя часть страницы
- В Web.config, настройка компиляции debug = "false"
- Запустил новый проект ASP.NET 4, добавил и обновил панель на странице, посмотрел на web.configя попытался сделать мой web.config более похожим на него
- проверил правильность системной даты ПК
- использовал элементы location в моем web.config, чтобы разрешить неаутентифицированный доступ к WebResource.axd, ScriptResource.axd и Telerik.Web.UI.WebResource.axd (у меня есть элементы управления Telerik на этом сайте)
- Добавлены маршруты. Игнорировать ("{resource} .axd / {* pathInfo}");к регистрации моего маршрута в global.asax
Любые другие решения этой проблемы?
Я могу опубликовать web.config или код, если необходимо.
Обновление 1: дополнительная информация
Я посмотрел на происходящее, используя вкладку "net" firebug. Сбой запросов GET для ScriptResource.axd и Webresource.axd с 404 .Это проливает свет на проблему?
Обновление 2: Частичное решение? Я использовал историю управления исходным кодом, чтобы вернуться к web.config, прежде чем я добавил службу WCF на веб-сайт.Наконец-то сработал web.config перед тем, как я добавил это:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="FoldersAspNetAjaxBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<services>
<service name="Folders">
<endpoint address="" behaviorConfiguration="FoldersAspNetAjaxBehavior" binding="webHttpBinding" contract="Folders" />
</service>
</services>
</system.serviceModel>
... и удалил связанную строку маршрутизации из моего global.asax:
routes.Add(new System.ServiceModel.Activation.ServiceRoute("", new System.ServiceModel.Activation.WebServiceHostFactory(), typeof(Folders)));
Так что один илиоба были виновником.Кто-нибудь может подсказать, как служба WCF или ее маршрутизация могли вызвать эту ошибку MS Ajax?
Это мой первый сервис WCF.Я едва понимаю, что делает приведенный выше код, но я подозреваю, что проблема маршрутизации лежит в основе проблемы где-то ...
Альтернативно - может кто-нибудь предложить альтернативу WCF?Я могу жить без этого, если я смогу доставить свои данные JSON в jquery другим способом.Может быть, HttpHandler, или WebService, или веб-форма, которая выдает JSON в качестве response.write или чего-то еще?
Обновление 2: Маршрутизация
Похоже, что для маршрутизации в global.asax требуетсяслужба WCF является проблемой (см. выше).Комментирование одной строки, похоже, решает проблему.Попытка изменить маршрут маршрута ...
Решено : Я решил это сам, вижу мой принятый ответ, но, конечно, не мог сделать это так быстро без предложений по правильному путинекоторыми очень проницательными ответами, спасибо всем.