C# 如何在asp.net mvc中隐藏自定义错误的服务器版本?

C# 如何在asp.net mvc中隐藏自定义错误的服务器版本?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,您好,我正在.NETMVC中开发web应用程序。我正在使用CustomHeader中的隐藏服务器版本。它工作正常,我能够隐藏iis版本。这适用于仅存在的页面。我还实施了 <customErrors defaultRedirect="Errorpage.html" mode="On"> <error statusCode="500" redirect="~/Login/Index" /> <error statusCode="400" red

您好,我正在.NETMVC中开发web应用程序。我正在使用CustomHeader中的
隐藏服务器版本。它工作正常,我能够隐藏iis版本。这适用于仅存在的页面。我还实施了

 <customErrors defaultRedirect="Errorpage.html" mode="On">
      <error statusCode="500" redirect="~/Login/Index" />
      <error statusCode="400" redirect="~/Login/Index" />
    </customErrors>

请允许我知道如何在存在页面和不存在页面的情况下修复此问题!能帮我修一下吗?任何帮助都将不胜感激。多谢各位

您可以为404创建自定义错误页,并将其添加到web.config文件中

<error statusCode="404" redirect="~/Home/PageNotFound" />
通过向PreSendRequestHeaders事件添加处理程序,可以消除“服务器”头,如下所示:

protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
    HttpApplication app = sender as HttpApplication;
    if (app != null &&
        app.Context != null)
    {
        app.Context.Response.Headers.Remove("Server");
    }
}

谢谢服务器版本呢?您可以在只显示页面未找到的视图中创建自己的html!。用户将看不到任何服务器版本。正如您所说,我已经创建了自己的html页面,并且仍然显示iis服务器版本。请找到我刚才添加的屏幕截图。嘿,Praveen,我的global.asax中已经有了。我刚才在上面加了一句。我希望你还没有明白我在找什么。存在的页面我可以隐藏服务器版本。不存在的页面我无法隐藏服务器版本。我尽可能地解释清楚,你需要创建一个返回视图的操作,在这个视图中你可以添加你的自定义html。当前页面的url类似于:localhost:62777/errorpage.html/aspxerrorpath=/Dashboard1,但它应该类似于localhost:62777/home/pagenotfound
MvcHandler.DisableMvcResponseHeader = true;
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
    HttpApplication app = sender as HttpApplication;
    if (app != null &&
        app.Context != null)
    {
        app.Context.Response.Headers.Remove("Server");
    }
}