Ошибка: «Sys» не определено - PullRequest
0 голосов
/ 23 декабря 2010

Когда я переместил свой веб-сайт на другой сервер, я заметил, что ajax не работает.

Когда я удаленный рабочий стол на сервер и перейти к URL на сервере, т.е. http://myserver/mywebsite ... все работает нормально.

Когда я открываю веб-сайт в visual studio на сервере, он также работает без проблем.

Ошибка «javascript» возникает только при удаленном подключении.

К моему web.config я добавил:

<httpHandlers>
  <remove verb="*" path="*.asmx"/>
  <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="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
<httpModules>
  <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>

Я пробовал

<compilation debug="false"/>

и попытался очистить историю веб-поиска, но все равно не повезло.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 23 декабря 2010

На другом компьютере установлена ​​другая версия IIS (или интегрированный режим AppPool).AJAX должен быть настроен в файле web.config, как вы написали выше, но в IIS 7 он находится в System.WebServer.Я мог бы дать вам рабочий пример для двух настроенных в одном файле, если бы я был дома, а не в поезде к дому ;-) В любом случае, вы можете получить правильный файл Web.config, если создадите новое веб-приложение с визуальнымstudio 2010.

Редактировать:

Скопируйте это в конец вашего файла web.config:

 <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
      <!--
      <add name="WebServiceAuthenticationModule" preCondition="integratedMode" type="WebServiceAuthenticationModule.WebServiceAuthenticationModule, WebServiceAuthenticationModule" />
      -->
      <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </modules>
    <handlers>
      <remove name="WebServiceHandlerFactory-Integrated" />
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
           type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
           type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.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=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </handlers>
  </system.webServer>

Единственная другая причина для sysне определено, если на странице, где вы используете AJAX, нет менеджера сценариев.

Sys - это класс JavasScript, который предоставляет все статические функции для вызовов .NET AJAX.

И убедитесь, что сборкаSystem.Web.Extensions.dll присутствует на другом компьютере (или для localcopy установлено значение true).

0 голосов
/ 23 декабря 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...