【发布时间】:2009-07-08 14:45:47
【问题描述】:
为什么我的所有 .axd 文件在我们的生产服务器上都会生成 404 错误?
【问题讨论】:
-
.aspx 文件有效吗?安装的是什么版本的 ASP.NET?
为什么我的所有 .axd 文件在我们的生产服务器上都会生成 404 错误?
【问题讨论】:
如果您使用的是 IIS7,请确保将处理程序添加到 <system.webServer><handlers> 部分:
<add name="MyName" path="MyName.axd" verb="*" type="NameSpace.Class, Assembly" />
【讨论】:
就我而言,我正在使用自动转换从 .NET 2.0 传输项目。 Converter 添加了<system.webServer> 部分以及<system.web> 中的所有处理程序和模块。但是,它为每个处理程序添加了以下属性:preCondition="integratedMode,runtimeVersionv2.0"
删除该属性后,404 停止并且处理程序开始工作。
【讨论】:
您需要在 IIS 中为该扩展创建一个 MIME 类型:
要为特定扩展定义 MIME 类型,请执行以下步骤:
【讨论】:
GET /WebResource.axd?d=blahblah--blahblah&t=12345678900000000 Rejected disallowed+query+string+sequence query+string - -- 修改 C:\Windows\System32\inetsrv\urlscan\UrlScan.ini 以允许 URL [AlwaysAllowedUrls] /WebResource.axd
在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>
【讨论】:
false 代替了true)。
您可以检查以下内容:
<system.web><httpHandlers>。对于 IIS7 集成模式,它应该在 <system.webServer><handlers> 中注册。【讨论】:
前段时间我们的生产服务器上出现错误 500(不是 404,但谁知道)。没有脚本资源能够加载。
问题在于我们的开发服务器和生产服务器之间的时间差。那是-7小时。 .NET 抛出异常,因为它试图使用具有嵌入式脚本资源的程序集的“未来时间”。
逐日减少{website}/bin/ 文件夹(实际上是其中的程序集)的创建日期解决了这个问题。
【讨论】:
你能否发出一个失败的“坏”请求,然后检查服务器的系统和应用程序事件日志?
围绕 axd 有几个问题可能会导致 404 或 500(例如 Alex 提到的“未来时间”问题),但它们会在事件日志中留下足迹。
查看并发布任何提及 axds 的日志条目。
【讨论】:
我在 system.webServer 部分的 modules.. 节点中添加了一个属性 runAllManagedModulesForAllRequests="true",404 停止并处理开始工作了。
【讨论】:
如果这对任何人都有帮助,我遇到了同样的问题,我们中很少有人花了 2 天时间。在 3 台服务器上,一切正常,并且还在开发中,但在这台服务器上 404 不停。解决方案,我将池从集成更改为经典并且有效
【讨论】: