Bul*_*nes 6 c# asp.net iis-6 http-status-codes
我正在HttpModule以这样的方式处理异常:
int errorCode = 500;
HttpApplication httpApp = (HttpApplication)sender;
try
{
if (httpApp.Server != null)
{
Exception ex;
for (ex = httpApp.Server.GetLastError(); ex != null; ex = ex.InnerException)
{
try
{
HttpException httpEx = ex as HttpException;
if (httpEx != null)
errorCode = httpEx.GetHttpCode();
// ... retrieve appropriate content based on errorCode
}
catch { }
}
}
Run Code Online (Sandbox Code Playgroud)
对于HTTP状态代码(例如:302,404,503等),一切都很好.但是,对于IIS状态代码(例如:401.5,403.4等),可以GetHttpCode检索这些,因为它的返回值是整数吗?
你可能做不到。请参阅此处的倒数第二个响应:http://www.velocityreviews.com/forums/t73739-sending-status-as-4011.html。HTTP RFC 未定义子代码 ( http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html )。看起来这可能是 MS 独有的东西 - 请参阅第一个链接中的最后一个响应,然后指向此处:http ://msdn.microsoft.com/en-us/library/system.web.httpresponse.substatuscode.aspx 。虽然这就是如何设置子状态代码,而不是检索它,但对我来说有趣的是,它仅受“IIS 7.0 中的集成管道模式和至少 .NET Framework 版本 3.0”的支持。
我唯一能想到的另一件事是查看 HttpException 上 ErrorCode 属性中的 HRESULT,看看是否在位级别上发生了一些事情,您可以从中找出代码和子代码。
不知道这是否有帮助。
| 归档时间: |
|
| 查看次数: |
3863 次 |
| 最近记录: |