繁体   English   中英

自定义403页面在一个环境下有效

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM