【问题标题】:scriptresource.axd 404 error in asp net 4 application - webresource works fine thoughasp net 4 应用程序中的 scriptresource.axd 404 错误 - 虽然 webresource 工作正常
【发布时间】:2011-01-25 18:32:11
【问题描述】:

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

这是最重要的,该页面也通过 WebResource.axd 进行调用,并且该请求工作正常。

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

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

【问题讨论】:

    标签: asp.net scriptresource.axd


    【解决方案1】:

    看起来需要将处理程序添加到 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 的帮助

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 这对我来说也是问题的根源。 web.config没问题,debug模式没用,无数次重启……一直以来,错误都是因为重写规则写得不好。谢谢大卫!
      【解决方案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" />
      

      【讨论】:

      • 这适用于 IIS 7.x,我认为您绝对不需要 preCondition="integratedMode"。
      • 这里是 .NET 4.0 版本
      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          【解决方案6】:

          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 :-))。

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

          享受吧! -泽潘

          【解决方案7】:

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

          【讨论】:

          • 感谢您为我降血压,您让我的生命延长了好几天!
          【解决方案8】:

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

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

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

          【讨论】:

            【解决方案9】:

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

            【讨论】:

              【解决方案10】:

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

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

              【讨论】:

                【解决方案11】:

                这可以通过两种方式解决。一种是在使用 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

                希望对你有帮助。

                【讨论】:

                  【解决方案12】:

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

                  【讨论】:

                    【解决方案13】:

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

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

                    网站加载了 web 和脚本 resource.axd。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2013-12-02
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多