Ajax客户端框架无法加载Asp.Net 4.0

Kha*_*led 28 asp.net ajax .net-4.0

我在ASP.Net 4.0 Ajax中遇到了一个复杂的问题....我在我的机器上创建了一个带有Visual Studio 2010的网站,并添加了一些他们曾经工作正常的更新面板,但是当我运行我的时候突然出现了一系列错误网站

Microsoft JScript运行时错误:ASP.NET Ajax客户端框架无法加载.

Microsoft JScript运行时错误:'Sys'未定义

奇怪的是,我在VS 2010的同一台机器上创建了一个网站,并且那里的更新面板工作得很完美.我把它的web.config带到我的新网站并改变了连接......我得到了同样的错误

我试图寻找解决方案,但我没有找到任何真正的解决方案.任何人都可以帮忙吗?

Kha*_*led 33

这是来自asp.net论坛上这个帖子zhughes的答案.

原因:当使用URL路由模块时,scriptmanager生成的javascript路径会发生变化.

解决方案:告诉路由API不要使用"axd"扩展名(脚本管理器生成的文件)路由文件

将此规则添加到在Global.asax中注册路由规则的方法中

 routes.Ignore("{resource}.axd/{*pathInfo}");
Run Code Online (Sandbox Code Playgroud)

另外,你应该在web.config中有这个部分

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

  • 我一直坚持这个问题一周..谢谢. (3认同)

Saf*_*Ali 10

如果使用URL重写模块,则在每个重写规则中添加

<add input="{URL}" pattern="\.axd$" negate="true"/>
Run Code Online (Sandbox Code Playgroud)

在条件标签下,像这样:

<rule name="HomeRewrite" stopProcessing="true">
   <match url="^home$"/>
   <conditions>
     <add input="{URL}" pattern="\.axd$" negate="true"/>
   </conditions>
   <action type="Rewrite" url="/home.aspx"/>
</rule>
Run Code Online (Sandbox Code Playgroud)


小智 8

我发现这可能是一个缓存/压缩问题,并通过在Web.Config中添加以下内容来解决问题.

<system.web.extensions>
    <scripting>
      <scriptResourceHandler enableCaching="false" enableCompression="false" />
    </scripting>
</system.web.extensions>
Run Code Online (Sandbox Code Playgroud)