Sys не определено - PullRequest
       115

Sys не определено

60 голосов
/ 16 сентября 2008

У меня есть проект комплекта управления ASP.Net/AJAX, над которым я работаю. 80% времени нет проблем. Страница работает как надо. Если вы обновите страницу, иногда будет отображаться ошибка JavaScript «Sys не определен».

Это не происходит постоянно, но это воспроизводимо. Когда это происходит, пользователь должен закрыть свой браузер и снова открыть страницу.

Это наводит меня на мысль, что это может быть настройка IIS.

Еще одна заметка. Я посмотрел на исходный код страницы, когда я получаю ошибку, а когда нет. Когда страница выдает ошибки, отсутствует следующий код:

<script src="/ScriptResource.axd?d=EAvfjPfYejDh0Z2Zq5zTR_TXqL0DgVcj_h1wz8cst6uXazNiprV1LnAGq3uL8N2vRbpXu46VsAMFGSgpfovx9_cO8tpy2so6Qm_0HXVGg_Y1&amp;t=baeb8cc" 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>

Ответы [ 30 ]

0 голосов
/ 29 ноября 2012
Среда разработки:
  • Dev-Env: VS 2012
  • FX: 4,0 / 4,5
  • Реализации: Мастер (ScriptManager + UpdatePanel / Timer) + Контент (UpdatePanel)
  • Шаблоны: PageRouting.

Отказ от ответственности:

Если все решения web.config не работают для вас, и вы внедрили PageRouting (IIS 7+), то приведенный ниже фрагмент кода решит ваши проблемы.

Справка:

Не имел в виду Highjack этот вопрос, но имел ту же проблему, что и все остальные, и реализовал 100% предложений здесь, с небольшими изменениями для .Net 4.0 / 4.5, и ни одно из них не помогло мне.

В моей ситуации я реализовал Page Routing , которая привела меня к проблеме. В основном, это будет работать около 20, или около того, отладочные прогоны, а затем BAM выдаст ошибку с ошибкой Sys is undefined.

После просмотра пары других постов, в которых рассказывалось о логике Clean-URL, я вспомнил, что выполнил настройку PageRouting.

Вот ресурс, который я использовал для построения своих шаблонов: Page Routing

Мой однострочный код исправил мою проблему с отладкой VS2012:

rts.Ignore("{resource}.axd/{*pathInfo}")    'Ignores any Resource cache references, used heavily in AJAX interactions.
0 голосов
/ 18 мая 2010

Просто создайте пустые файлы .axd в ваших решениях. Проблема с корнем будет решена. (2 файла: scriptresouce.asx, webresource.asxd)

0 голосов
/ 29 июля 2011

Убедитесь, что у вас нет правил перезаписи, которые изменяют ваш URL.

В моем случае приложение считало, что оно только на уровень выше, чем достигнут URL.

Пример: http://mysite.com/app/page.aspx был реальный URL. Но я отключил / app /, он отлично работал для ASP.net и WCF, но явно не для Ajax.

0 голосов
/ 16 мая 2011

Я обнаружил ошибку при использовании комбинации Ajax Control Toolkit ToolkitScriptManager и URL Write 2.0.

В моем <rewrite> <outboundRules> было предварительное условие:

<preConditions>
    <preCondition name="IsHTML">
        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html"/>
    </preCondition>
</preConditions>

Но, видимо, некоторые из моих исходящих правил не были настроены на использование предварительного условия.

Как только я установил это предварительное условие для всех моих исходящих правил:

<rule preCondition="IsHTML" name="MyOutboundRule">

Нет больше проблем.

0 голосов
/ 18 августа 2010

Сегодня я видел точно такую ​​же ошибку, но это не было проблемой конфигурации или прямой JavaScript.

Внешний проект .net был обновлен, но изменения не были собраны должным образом при компиляции веб-сайта. Я предполагаю, что ASP.NET ajax не смог правильно сконструировать клиентские представления объектов .NET и поэтому не мог правильно загружаться.

Чтобы решить эту проблему, я перестроил внешний проект (ы) и перестроил свое решение, в котором возникли проблемы. Проблема ушла.

0 голосов
/ 21 сентября 2010

Привет, спасибо, это решило мою проблему,

По умолчанию vs 2008 добавит

 <!--<add verb="*" path="*.asmx" validate="false" type="Microsoft.Web.Script.Services.ScriptHandlerFactory, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <add verb="GET" path="ScriptResource.axd" type="Microsoft.Web.Handlers.ScriptResourceHandler" validate="false" />-->

Необходимо исправить настройки по умолчанию (выше) для кода ниже FIX

 <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  <add verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler" validate="false"/>
0 голосов
/ 27 мая 2016

В моем случае я обнаружил очень скрытую причину ... Был маршрут этой страницы в Global.ascx.cs , который не отображается в моих тестах в подпапках, но возвращает ошибка вопроса все время .. другой день со странными проблемами.

routes.MapPageRoute("siteDefault", "{culture}/", "~/default.aspx", false, new RouteValueDictionary(new { culture = "(\\w{2})|(\\w{2}-\\w{2})" }));
0 голосов
/ 25 февраля 2012

У меня были похожие проблемы, и к моему удивлению я обнаружил, что один из моих разработчиков сохранил файл web.config в той же папке / решении, что и web123.config , и по ошибке оба этих файла были загружены.

Как только я удалил файл web123.config , эта ошибка исчезла, и фреймворк ajax загружался правильно. хотя у меня есть

<compilation debug="true">

В моем случае у меня также есть следующий сегмент. Мой проект использует фреймворк 3.5

    <httpHandlers>
  <remove verb="*" path="*.asmx"/>
  <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<httpModules>
  <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web>
0 голосов
/ 14 июня 2012

Звучит глупо, но у меня была похожая проблема с сайтом, который разрабатывался в VS2010 и размещался на VS Dev Server. На рассматриваемой странице был скрипт-менеджер для создания соединения с сервисом wcf. Я добавил дополнительный метод к службе, и эта ошибка начала появляться.

Что для меня было исправлено, так это переключение с «Автоматически назначать порт» на «Определенный порт» с другим номером порта в веб-настройках oroject.

Хотел бы я знать, почему ...

0 голосов
/ 24 марта 2009

У меня была похожая проблема, за исключением того, что на моей странице постоянно возникала ошибка Sys - неопределенная.

Для меня проблема заключается в том, что я только что установил расширение AJAX 1.0 для .NET 2.0, но уже создал свой веб-проект в Visual Studio.

Когда я пытался создать элементы управления AJAX, я продолжал сталкиваться с этой ошибкой, я заметил здесь сообщения Slace и MadMax1138s. И я подумал, что это мой web.config. Я создал новый проект, используя новый тип проекта «AJAX-включен веб-сайт», и, конечно же, web.config имеет большое количество настроек, необходимых для использования элементов управления AJAX.

Я только что обновил этот web.config обновлениями web.config, которые я уже сделал сам, и поместил в свой существующий проект, и все работало нормально.

...