【发布时间】:2010-10-21 16:31:45
【问题描述】:
我正在以如下方式处理带有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 { }
}
}
对于HTTP status codes(例如:302、404、503 等),一切正常。但是,对于IIS status codes(例如:401.5、403.4 等),GetHttpCode 可以检索这些,因为它的返回值是一个整数?
【问题讨论】:
-
+1。我真的很喜欢使用 InnerException 的 for 循环 想法。你有没有找到一些代码来提取这些 IIS 错误代码?
-
仅供参考:您的代码忽略了显示对
Server.ClearError();的任何调用,如果其中不存在,您应该添加它。
标签: c# asp.net iis-6 http-status-codes