错误:'Sys'未定义

时间:2010-12-23 12:29:04

标签: asp.net ajax

当我将我的网站移到另一台服务器时,我现在注意到ajax似乎没有工作。

当我将桌面远程连接到服务器并转到服务器上的网址即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 :(得分:0)

答案 1 :(得分:0)

另一个计算机安装了另一个IIS版本(或AppPool集成模式)。在上面编写时,需要在web.config文件中配置AJAX,但在IIS 7中,它位于System.WebServer中。如果我在家里而不是在火车上回家,我可以给你一个在同一文件中配置的两个工作样本;-)无论如何,如果你用视觉创建一个新的web应用程序,你可以得到一个正确的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的页面上没有scriptmanager。

Sys是JavasScript类,它为.NET AJAX调用提供所有静态函数。

确保另一台计算机上存在程序集System.Web.Extensions.dll(或将localcopy设置为true)。