Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 状态代码为404的IHTTP模块重写路径_C#_Asp.net_Iis 7_Httpmodule_Ihttpmodule - Fatal编程技术网

C# 状态代码为404的IHTTP模块重写路径

C# 状态代码为404的IHTTP模块重写路径,c#,asp.net,iis-7,httpmodule,ihttpmodule,C#,Asp.net,Iis 7,Httpmodule,Ihttpmodule,我有一个URL,看起来像:/employeeId=3992,它显示ID为3992的员工。这很好,HTTP状态代码是200 OK 但是,当有人在URL中写入一个无效ID,例如:/employeeId=39920时,我希望我的HTTP处理程序重写错误页面的路径,并发送HTTP状态代码404 以下是我使用的代码: if (employee == null) { context.RewritePath("/error-page"); context.Response.StatusCode

我有一个URL,看起来像:/employeeId=3992,它显示ID为3992的员工。这很好,HTTP状态代码是200 OK

但是,当有人在URL中写入一个无效ID,例如:/employeeId=39920时,我希望我的HTTP处理程序重写错误页面的路径,并发送HTTP状态代码404

以下是我使用的代码:

if (employee == null)
{
    context.RewritePath("/error-page");
    context.Response.StatusCode = 404; // if I remove this line, the error-page is displayed, and the StatusCode is 200.
}
当我将HTTP状态代码设置为404时,页面将显示此标准ASP.NET 404错误页面

也可以调用

context.Response.TrySkipIisCustomErrors = true;
例如:


看看这篇文章,它似乎涵盖了你想要实现的目标
if (employee == null)
{
    context.Response.TrySkipIisCustomErrors = true;
    context.RewritePath("/error-page");
    context.Response.StatusCode = 404; 
}