编程语言
首页 > 编程语言> > c#-ASP.NET MVC3:Web.Config中的customErrors在本地主机和服务器上被忽略,自定义错误页面仅在本地主机上显示

c#-ASP.NET MVC3:Web.Config中的customErrors在本地主机和服务器上被忽略,自定义错误页面仅在本地主机上显示

作者:互联网

我正在尝试获取我们已构建为显示的自定义404页面,而不是服务器创建的默认404页面.在本地调试应用程序时,它可以按预期方式工作,但在服务器上运行应用程序时,则不能按预期工作.它们的web.config文件看起来完全一样.

    <customErrors mode="On" defaultRedirect="~/Error/Index">
        <error statusCode="404" redirect="~/Error/NotFound" />
    </customErrors>

奇怪的是,当任何有关的内容被修改时-将模式设置为“关”或“仅远程”,将“〜/错误”更改为“错误”,或完全删除该部分-结果总是相同的:我得到了本地看起来不错的404页面,但不在服务器上.

在本地调试时,此方法将按预期执行:

    public class ErrorController : BaseController
    {
        [AcceptVerbs(HttpVerbs.Get)]
        public ActionResult NotFound()
        {
            Response.StatusCode = (int)HttpStatusCode.NotFound;
            ErrorSignal.FromCurrentContext().Raise(new HttpException(404, Request.Url.PathAndQuery + " was not found"));
            return View();
        }
    }

因为它在Global.asax中找到了这条路线:

routes.MapRoute(
"NotFound",
"{*path}",
    new { controller = "Error", action = "NotFound" });

任何和所有建议,不胜感激.

解决方法:

问题已解决-我去找管理我们的IIS设置的人,让他将404错误页面路径更改为重定向到URL,该URL为“ /Error/NotFound/Index.aspx”.但是显然,这等效于将其添加到system.webServer部分:

<httpErrors>
    <remove statusCode="404" subStatusCode="-1" />
    <error statusCode="404" prefixLanguageFilePath="" path="/Error/NotFound" responseMode="ExecuteURL" />
</httpErrors>

标签:web-config,http-status-code-404,custom-errors,c,asp-net-mvc-3
来源: https://codeday.me/bug/20191102/1988309.html