自定义 403 页面适用于一个环境,而不适用于另一个环境
本文关键字:环境 适用于 一个 另一个 不适用 自定义 | 更新日期: 2023-09-27 18:32:45
在我的 ASP.NET MVC Web应用程序中,我正在尝试发送包含404和403响应的自定义错误页面。 我能够在我的本地 IIS 上使用 Global.asax.cs 中的以下代码执行此操作。 不需要 web.config 支持。
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? 可能是要更改的某些服务器端配置。