[英]Custom 403 page works one environment and not another
在我的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 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吗? 可能是某些服务器端配置更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.