首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StatusCode in IHttpModule总是200?

StatusCode in IHttpModule总是200?
EN

Stack Overflow用户
提问于 2009-06-09 09:47:44
回答 3查看 1K关注 0票数 2

我有一个定制的IHttpModule,它处理所有可用的事件,并将HttpContext.Current.Response.StatusCode记录到一个文件中。

我的web.config<httpModules>中不包含任何其他模块,所以所有错误都被提升到浏览器。

尽管浏览器显示的是404,但是日志文件中满是200 (Ok)项,而不是一个404。

我遗漏了什么?

更新

.aspx结尾的Url在PreSendRequestHeaders事件中确实有一个404 StatusCode,但是Url使用.pdf显示StatusCode 200在所有事件中?!

EN

回答 3

Stack Overflow用户

发布于 2009-06-09 10:00:58

当有404时,您的模块实际运行吗?

您是否将调试器附加到模块中有断点的应用程序--当您请求一个不存在的.aspx页面时,它会被击中吗?当您请求一个不存在的文件或目录时,它会被击中吗?

在IIS的设置上,有可能ASP.NET没有看到这些错误--它不会处理例如somepage.html或missing.gif的请求。

票数 0
EN

Stack Overflow用户

发布于 2011-10-05 22:06:15

我也遇到了同样的问题,并解决了它在HttpException处理程序中转换当前异常的问题。然后,您可以获得Http错误代码。

代码语言:javascript
复制
Exception exception = HttpContext.Current.Server.GetLastError();
HttpException httpException = exception as HttpException;
if (httpException != null)
{
    int httpCode = httpException.GetHttpCode();
}

来源:http://www.digitallycreated.net/Blog/57/getting-the-correct-http-status-codes-out-of-asp.net-custom-error-pages

希望它有帮助:)

票数 0
EN

Stack Overflow用户

发布于 2021-01-26 13:52:35

派对有点晚了。尝试删除模块的preCondition="managedHandler“在web.config中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/969139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档