.axd文件生成404错误

时间:2009-07-08 14:45:47

标签: asp.net iis

为什么我的生产服务器上的所有.axd文件都会生成404错误?

9 个答案:

答案 0 :(得分:15)

如果你在IIS7上,请确保将处理程序添加到<system.webServer><handlers>部分:

<add name="MyName" path="MyName.axd" verb="*" type="NameSpace.Class, Assembly" />

答案 1 :(得分:7)

在我的情况下,我使用自动转换从.NET 2.0传输项目。 Converter添加了<system.webServer>部分以及<system.web>中的所有处理程序和模块。但是,对于每个处理程序,它添加了以下属性: preCondition =“integratedMode,runtimeVersionv2.0” 删除属性后,404s停止,处理程序开始工作。

答案 2 :(得分:6)

您需要在IIS中为该扩展程序创建MIME类型:

要为特定扩展名定义MIME类型,请按以下步骤操作:

  1. 打开IIS Microsoft管理控制台(MMC),右键单击本地计算机名称,然后单击“属性”。
  2. 单击HTTP标头。
  3. 点击MIME类型。
  4. 点击新建。
  5. 在“扩展名”框中,键入所需的文件扩展名(例如,.axed)
  6. 在“MIME类型”框中,键入application / octet-stream。
  7. 应用新设置。请注意,必须重新启动World Wide Web Publishing服务或等待工作进程回收才能使更改生效。在此示例中,IIS现在提供扩展名为.axed的文件。

答案 3 :(得分:4)

Request Filtering确认您  *将.axd作为允许的扩展名,或  *在编辑请求过滤设置

中勾选Allow unlisted file name extensions

使用以下web.config部分可以实现相同的效果:

<system.webServer>
    <security>
        <requestFiltering>
            <fileExtensions>
                <add fileExtension=".axd" allowed="true" />
            </fileExtensions>
        </requestFiltering>
    </security>
</system.webServer>

答案 4 :(得分:3)

您可以查看以下内容:

  1. 在IIS管理控制台中检查是否允许.axd扩展名(默认的HTTP处理程序扩展名)。
  2. 同时检查“验证文件是否存在”复选框是否为未选中。选择axd扩展名后单击“编辑”按钮后会出现此屏幕。
  3. 检查HTTP处理程序是否在web.config中正确注册。它也应该在正确的配置部分,具体取决于IIS版本。对于IIS6和IIS7 Classic模式,它应该在<system.web><httpHandlers>中。对于IIS7集成模式,它应该在<system.webServer><handlers>
  4. 中注册

答案 5 :(得分:2)

前一段时间我们的生产服务器上有错误500(不是404,但是谁知道)。没有脚本资源可以加载。

问题在于我们的开发和生产服务器之间的时差。这是-7小时。 .NET引发了一个异常,因为它试图使用嵌入式脚本资源的程序集的“未来时间”。

逐日减少{website}/bin/文件夹(实际上是其中的程序集)创建日期解决了这个问题。

答案 6 :(得分:0)

您是否可以提出失败的“错误”请求,然后检查服务器的系统和应用程序事件日志?

围绕axd的几个问题可能会导致404或500(例如Alex提到的“未来时间”问题),但它们会在事件日志中留下足迹。

查看并发布任何提及裁判的日志条目。

答案 7 :(得分:0)

我在 system.webServer 部分的模块 ..节点中添加了 runAllManagedModulesForAllRequests =“true”属性,404s已停止且处理程序开始工作了。

答案 8 :(得分:0)

如果这对任何人有帮助,我也有同样的问题,我们很少有人花2天时间。在3台服务器上,一切正常,在开发过程中,但在此服务器上404不停。解决方案,我将poold从集成改为经典,并且有效。