C# 自定义403页适用于一种环境,而不是另一种环境
在我的ASP.NET MVC web应用程序中,我试图发送一个带有404和403响应的自定义错误页面。我可以使用Global.asax.cs中的以下代码在本地IIS上执行此操作。不需要web.config支持C# 自定义403页适用于一种环境,而不是另一种环境,c#,asp.net,asp.net-mvc,iis,http-status-code-403,C#,Asp.net,Asp.net Mvc,Iis,Http Status Code 403,在我的ASP.NET MVC web应用程序中,我试图发送一个带有404和403响应的自定义错误页面。我可以使用Global.asax.cs中的以下代码在本地IIS上执行此操作。不需要web.config支持 protected void Application_EndRequest() { if (Context.Response.StatusCode == 404) { Response.Clear(); var rd = new Route
protected void Application_EndRequest()
{
if (Context.Response.StatusCode == 404)
{
Response.Clear();
var rd = new RouteData();
rd.DataTokens["area"] = "";
rd.Values["controller"] = "Error";
rd.Values["action"] = "NotFound";
IController c = new ErrorController();
c.Execute(new RequestContext(new HttpContextWrapper(Context), rd));
}
else if (Context.Response.StatusCode == 403)
{
Response.Clear();
var rd = new RouteData();
rd.DataTokens["area"] = "";
rd.Values["controller"] = "Error";
rd.Values["action"] = "Forbidden";
IController c = new ErrorController();
c.Execute(new RequestContext(new HttpContextWrapper(Context), rd));
}
}
但是,当我将同一代码部署到测试环境时,它不起作用。在我的测试环境中,我仍然得到403响应,但是我没有看到我的自定义禁止视图。我只是从IIS获得默认的403视图。更奇怪的是,404视图在这两种环境下都能工作。我花了一整天的时间比较web.config文件和其他IIS设置,试图确定我的测试环境有什么不同,但运气不好。任何帮助都将不胜感激。您在测试服务器上的该路径上是否确实被禁止(用户权限,无读取)
测试服务器是否与您的开发人员计算机运行相同的IIS?可能需要更改某些服务器端配置。您在测试服务器上的该路径上是否确实被禁止(用户权限,无读取)
测试服务器是否与您的开发人员计算机运行相同的IIS?可能需要更改某些服务器端配置。是的,我无法访问正确的资源。响应的状态代码为403,但浏览器中呈现的标记与我访问licall IIS时的自定义视图不同。我的本地IIS是v10,而测试环境是v7。是的,我无法访问正确的资源。响应的状态代码为403,但浏览器中呈现的标记与我访问licall IIS时的自定义视图不同。我的本地IIS是v10,而测试环境是v7。