14 asp.net elmah exception asp-classic
我有一个ASP.NET网站与经典asp混合(我们正在转换到.NET),我最近从.NET 1.1升级到.NET 4.0并切换到IIS 7中的集成管道.
由于这些更改ELMAH报告来自经典asp页面的错误,实际上没有详细信息(和状态代码404):
System.Web.HttpException (0x80004005)
at System.Web.CachedPathData.ValidatePath(String physicalPath)
at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
Run Code Online (Sandbox Code Playgroud)
但是当我自己请求页面时,不会发生错误.ELMAH中出现的所有这些错误都是由Googlebot抓取工具(用户代理字符串)引起的.
.NET如何为经典的asp页面选择错误?这与集成管道有关吗?
任何想法为什么只有当Google抓取页面时才会发生错误,或者我如何获取更多详细信息以查找潜在的错误?
Luk*_*son 14
将其添加到您的web.config文件中:
<httpRuntime relaxedUrlToFileSystemMapping="true" />
Run Code Online (Sandbox Code Playgroud)
这将禁用默认检查以确保请求的URL符合Windows路径规则.
要重现该问题,请将%20(URL转义空间)添加到URL的末尾,例如http://example.org/%20.当搜索爬虫遇到带有空格的错误类型链接时,这种问题很常见,例如<a href="http://example.org/ ">example</a>.
该HttpContext.Request.Url属性似乎削减了尾随空间,这就是ELMAH等日志工具没有揭示实际问题的原因.
| 归档时间: |
|
| 查看次数: |
3147 次 |
| 最近记录: |