C# 在Aspnet WebApI 4.6 HttpModule中,显示404错误的Http状态码

C# 在Aspnet WebApI 4.6 HttpModule中,显示404错误的Http状态码,c#,.net,asp.net-web-api,C#,.net,Asp.net Web Api,在ASPNETWebAPI4.6中,我得到了200个状态代码,而404是预期的。以下是可以重现此功能的模块 internal class HttpRequestLoggerModule : IHttpModule { /// <summary> /// Initializes the module /// </summary> /// <param name="context">appli

在ASPNETWebAPI4.6中,我得到了200个状态代码,而404是预期的。以下是可以重现此功能的模块

internal class HttpRequestLoggerModule : IHttpModule
    {
        /// <summary>
        /// Initializes the module
        /// </summary>
        /// <param name="context">application initializing the module</param>
        public void Init(HttpApplication context)
        {
            context.EndRequest += OnEndRequest;
        }

        private static void OnEndRequest(object sender, EventArgs e)
        {
            var application = (HttpApplication)sender;

            // Why this is 200 for 404 requests where route was incorrect and no handler was found.
            var statusCode = application.Context.Response.StatusCode;
        }
    }
内部类HttpRequestLoggerModule:IHttpModule
{
/// 
///初始化模块
/// 
///应用程序初始化模块
公共void Init(HttpApplication上下文)
{
context.EndRequest+=OnEndRequest;
}
私有静态void OnEndRequest(对象发送方、事件参数e)
{
var应用程序=(HttpApplication)发送方;
//为什么对于路由不正确且未找到处理程序的404请求,这是200。
var statusCode=application.Context.Response.statusCode;
}
}

这是托管在IIS中的,似乎404是由IIS返回的,http模块在执行之后执行。是否有任何方法可以捕获http模块中的正确状态?

重定向时可能会发生这种情况。未找到(404)可以被处理并重定向(302)到一个错误页面,加载时返回200。这是aspnet webapi,没有错误页面注册。IIS正在做一些开箱即用的事情,我看不到任何方法可以截获从HttpModule返回的正确状态。