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