19

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

这是踢球者,该页面也通过 WebResource.axd 进行调用,并且该请求工作正常。

有什么想法我可以检查吗?正在运行 IIS7。它是负载平衡的,但我们在配置中有机器密钥。我为 scriptresource.axd 添加了一个 httpHandlers 部分..但我仍然遇到同样的问题..难倒...

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

4

13 回答 13

11

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

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

感谢@Uwe Keim 的帮助

于 2011-01-25T21:33:30.117 回答
4

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

于 2012-11-16T12:34:34.317 回答
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" />
于 2014-05-15T10:48:37.083 回答
3

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

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

于 2014-09-16T15:43:40.217 回答
2

“404”也可能意味着(在某些情况下)“未启用”或“不允许”。我有一段时间回到服务器上,不得不启用一些扩展。

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

于 2011-01-25T20:38:20.267 回答
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 :-))。

链接也有很好的 WebResource.axd 背景信息,即使它不能直接解决您的问题。不幸的是,我的问题 WebResource.axd 404 问题仅在 Fiddler 运行时发生(!),但这是一个与发布的问题不同的问题。

享受!-泽潘

于 2012-01-31T00:31:55.837 回答
2

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

于 2013-02-04T14:47:46.477 回答
1

我遇到了这个问题。上述解决方案对我不起作用,但起作用的是来自此页面的评论:

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

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

于 2011-12-07T19:32:35.440 回答
1

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

于 2013-06-21T23:20:07.357 回答
1

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

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" 
        ScriptMode="Release" AsyncPostBackTimeout="600" EnablePageMethods="true" EnableCdn="true" />
于 2019-03-29T19:27:24.527 回答
0

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

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

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

希望能帮助到你。

于 2015-12-22T00:01:58.317 回答
0

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

于 2019-06-24T13:40:08.310 回答
0

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

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

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

于 2019-07-11T14:08:14.687 回答