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

时间:2010-09-12 15:24:04

标签: 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带到了我的新网站并改变了连接......我得到了同样的错误

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

13 个答案:

答案 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)

  1. 如果.Net Framework 4.0客户端配置文件在您的计算机上不可用,那么修复.net框架工作4.0或重新安装。
  2. 转到Project Property并选择目标框架3.5。

答案 12 :(得分:1)

就我而言,微软的UrlScan工具拒绝了Ajax请求的某些URL。禁用它解决了这个问题。