C# 在Aspnet WebApI 4.6 HttpModule中,显示404错误的Http状态码
在ASPNETWebAPI4.6中,我得到了200个状态代码,而404是预期的。以下是可以重现此功能的模块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
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返回的正确状态。