我在ASP.Net 4.0 Ajax中遇到了一个复杂的问题....我在我的机器上启动了一个带有Visual Studio 2010的网站,并添加了一些他们曾经工作正常的更新面板,但突然间我遇到了一系列错误我运行我的网站
Microsoft JScript运行时错误:无法加载ASP.NET Ajax客户端框架。
Microsoft JScript运行时错误:'Sys'未定义
奇怪的是,我在VS 2010的同一台机器上创建了一个网站,并且那里的更新面板工作得很完美。我把它的web.config带到了我的新网站并改变了连接......我得到了同样的错误
我试图寻找解决方案,但我没有找到任何真正的解决方案。任何人都可以帮忙吗?
答案 0 :(得分:32)
以下是zhughes在asp.net论坛上thread的答案。
原因:当使用URL路由模块时,scriptmanager生成的javascript路径会发生变化。
解决方案:告诉路由API不要使用“axd”扩展名(脚本管理器生成的文件)路由文件
将此规则添加到在Global.asax中注册路由规则的方法
routes.Ignore("{resource}.axd/{*pathInfo}");
此外,您应该在web.config中使用此部分
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
答案 1 :(得分:10)
如果使用URL重写模块,则在每个重写规则中添加
<add input="{URL}" pattern="\.axd$" negate="true"/>
条件标签下的,如下所示:
<rule name="HomeRewrite" stopProcessing="true">
<match url="^home$"/>
<conditions>
<add input="{URL}" pattern="\.axd$" negate="true"/>
</conditions>
<action type="Rewrite" url="/home.aspx"/>
</rule>
答案 2 :(得分:8)
我发现这可能是一个缓存/压缩问题,并在Web.Config中加入以下内容,解决了这个问题。
<system.web.extensions>
<scripting>
<scriptResourceHandler enableCaching="false" enableCompression="false" />
</scripting>
</system.web.extensions>
答案 3 :(得分:3)
我遇到了同样的问题。我安装了VS 2010 SP1,问题就消失了。
答案 4 :(得分:3)
我有同样的问题,我通过在Framework 4.0的文件夹(运行我的应用程序)上运行命令 aspnet_regiis -i 来解决它。这是IIS的Handler Mapping上的一个问题:这个操作为我解决了这个问题。 另请参阅this post。
希望这可能有所帮助。
答案 5 :(得分:3)
Microsoft JScript运行时错误:无法加载ASP.NET Ajax客户端框架。
像这样添加引用..
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Services, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Services.Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
答案 6 :(得分:3)
可能只是在你的web.config中错过了<Handlers>
的{{1}}部分,我的建议是,如果你的网络配置的旧版本试用了。
答案 7 :(得分:2)
当您尝试在页面加载之前调用框架javascript函数时,会发生这种常见错误。
所以当dom准备就绪时(例如,页面加载),以太运行你的代码,以太将你的代码放在scriptmanager标签之后,或者在scriptmanager的javascript加载之后检查它。
答案 8 :(得分:2)
我遇到了这个问题并向全能的谷歌寻求答案,尝试了各种建议,包括上述但没有运气。放弃并转移到其他工作,几天后回来,问题已经消失。
我恢复了工作,进行了一些代码更改并发布了我的网站,问题又重新出现了。回到谷歌并遇到了在使用3.5框架时遇到问题的人。在这种情况下,他/她能够通过转到“添加/删除程序”控制面板并选择修复选项来解决问题。
我也这样做了,修复了“MS .NET Framework 4 Client Profile”和“MS .NET Framework 4 Extended”。这解决了我的问题。
希望能为别人解决这个问题。
答案 9 :(得分:2)
在我的情况下,它是IISExpress,切换回cassini dev服务器修复我的头痛。
答案 10 :(得分:1)
我遇到了这个问题以及处理母版页,在我的情况下,这是一个“基础”元设置让我搞砸了。我记得在某个地方读过另一篇文章/博客,他们提到了跨越不同域的ajax验证问题导致了这种类型的错误。
所以在我的情况下,我有一个<base...>
引用设置网站的默认网址但我的开发显然是一个不同的网址...因此冲突和“ASP.NET Ajax客户端框架未能加载。”错误。
删除了基地,瞧...错误消失了。
HTH
戴夫
答案 11 :(得分:1)
答案 12 :(得分:1)
就我而言,微软的UrlScan工具拒绝了Ajax请求的某些URL。禁用它解决了这个问题。