scriptresource.axd asp net 4应用程序中的404错误 - webresource工作正常

时间:2011-01-25 18:32:11

标签: asp.net scriptresource.axd

嘿大家,我有一个.net 4应用程序,我刚刚部署到生产中。应用程序加载很好,除了我引用的js文件没有正确加载。使用fiddler我发现ScriptResource.axd调用返回404错误。

继承人,该页面也通过WebResource.axd进行调用,该请求正常。

我能检查的任何想法?运行IIS7。它是负载平衡的,但我们在配置中有machinekeys。我为scriptresource.axd添加了一个httpHandlers部分..但我仍然有同样的问题..难倒......

更新 - 我们认为ou websrver不知道axd文件是什么。是否有任何.net安装将在iis中安装axd映射?

14 个答案:

答案 0 :(得分:9)

根据此博客,需要将处理程序添加到system.webserver:http://geekswithblogs.net/lorint/archive/2007/03/28/110161.aspx

感谢@Uwe Keim的帮助

答案 1 :(得分:4)

我今天遇到了同样的问题,但这是由重写规则引起的,该规则正在重写来自/ScriptResource.axd' to / some_application / ScriptResource.axd'的请求,该请求不是有效目标。将规则更正为忽略.axd的网址解决了问题。

答案 2 :(得分:3)

这对我有用:

将以下处理程序添加到web.config:

<system.webServer>
<handlers>
<add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode" />

答案 3 :(得分:2)

“404”也可能意味着(在某些条件下)“未启用”或“不允许”。我有一段时间回到服务器上并且必须启用一些扩展。

另一种方法是使用Process Monitor查看IIS进程是否正在搜索真实文件但未找到。

答案 4 :(得分:2)

http://blogs.msdn.com/b/carloc/archive/2008/12/04/webresource-axd-or-scriptresource-axd-not-working.aspx的两种可能解决方案:

  1. IIS压缩导致WebResource.axd请求失败。禁用IIS Web应用程序的压缩,然后重试。
  2. IIS根或特定应用的Web.config将ScriptMaps设置为验证* .axd或WebResource.axd是一个真实文件(它不是)。阅读修复步骤的链接(至少对于IIS6: - ))。
  3. Link也具有良好的WebResource.axd背景信息,即使它不能直接解决您的问题。不幸的是,我的问题WebResource.axd 404问题只在Fiddler运行时发生(!),但这是一个单独的问题而不是发布的问题。

    享受! - Zephan

答案 5 :(得分:2)

检查服务器上的时间是否未在网站发布之前设置。

答案 6 :(得分:2)

对我来说,所有AXD文件都失败了。花了一整个星期后,尝试在互联网上找到的每个答案,没有运气:

我创建了空文件ScriptResource.axdWebResource.axd,它解决了这个问题。我很想知道真正的问题是什么。

答案 7 :(得分:1)

我遇到了这个问题。上述解决方案对我没有用,但是this page的评论是什么呢?

  

如果您的web.config文件不在根文件夹中,或者该文件夹不是IIS中的应用程序,则会出现此问题。

我通过将web.config文件复制到网站的根文件夹来解决它。

答案 8 :(得分:1)

对我来说,问题是我的服务器被设置为错误的时间。它的日期设定为2012年6月12日,而不是2013年6月21日。修正了日期和噗!它开始工作:)

答案 9 :(得分:0)

这可以通过两种方式解决。一种是在使用HttpHandlers设置时将IIS7应用程序池设置管理管道模式设置为Classic。如果IIS7和/或IIS7 Express必须使用Integrated而不是Classic,那么我们需要使用system.webServer.handlers设置,并将precondition属性设置为集成模式。

将一些旧的Web应用程序迁移到云托管环境时,这是一个常见问题。有关详细信息,请参阅此文章:

http://www.ozkary.com/2015/12/404-error-axd-http-handler.html

希望它有所帮助。

答案 10 :(得分:0)

添加即可解决

<system.webServer>
  <handlers>
    <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" />

答案 11 :(得分:0)

花费4个小时后,我在asp.net 4.0上发现了一个名为EnableCdn的新属性,基本上,如果将其设置为“ true”,它将从Microsoft内容资源服务器中加载资源。

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" 
        ScriptMode="Release" AsyncPostBackTimeout="600" EnablePageMethods="true" EnableCdn="true" />

答案 12 :(得分:0)

这是我的情况:我在Web根目录上有URL重写规则,并且正在发布到根目录下的应用程序,该应用程序继承了URL重写规则,该规则将所有.axd请求重定向到其他地方。从IIS管理器禁用应用程序文件夹中的重写规则对我来说解决了这个问题。

答案 13 :(得分:0)

我遇到了同样的问题,这是由url重写模块引起的。我评论了

<system.webServer>  
<modules>
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />

并且站点加载了Web和脚本resource.axd。