asp.net – 为什么我的自定义404错误处理程序在部署到Web服务器
发布时间:2020-12-16 07:19:11 所属栏目:asp.Net 来源:网络整理
导读:我跟着 this post创建了一个全局错误处理程序.我自己添加了处理404错误.但是,当我在本地测试时它工作正常但是一旦部署到Web服务器,我的自定义消息就不再显示了.相反,默认丑陋的显示. 在远程调试中,我可以跟踪执行情况,它确实可以实现我的自定义404错误操作,
我跟着
this post创建了一个全局错误处理程序.我自己添加了处理404错误.但是,当我在本地测试时它工作正常但是一旦部署到Web服务器,我的自定义消息就不再显示了.相反,默认丑陋的显示.
在远程调试中,我可以跟踪执行情况,它确实可以实现我的自定义404错误操作,但不知何故,IIS在某些时候接管了. 在我的Global.asax.cs中,我有: protected void Application_Error() { var exception = Server.GetLastError(); var httpException = exception as HttpException; Response.Clear(); Server.ClearError(); var routeData = new RouteData(); routeData.Values["controller"] = "Error"; routeData.Values["action"] = "General"; routeData.Values["exception"] = exception; Response.StatusCode = 500; if (httpException != null) { Response.StatusCode = httpException.GetHttpCode(); switch (Response.StatusCode) { case 403: routeData.Values["action"] = "Http403"; break; case 404: routeData.Values["action"] = "Http404"; break; } } IController errorController = new ErrorController(); var rc = new RequestContext(new HttpContextWrapper(Context),routeData); errorController.Execute(rc); } 然后在我的ErrorHandler.cs中,我有: public ActionResult General(Exception exception) { // log error return Content("General error","text/html"); } public ActionResult Http403(Exception exception) { return Content("Forbidden","text/plain"); } public ActionResult Http404(Exception exception) { return Content("Page not found.","text/plain"); // this displays when tested locally,but not after deployed to web server. } } 解决方法
你是对的,远程IIS正在接管你的404页面.你需要的是告诉IIS跳过自定义错误设置Response.TrySkipIisCustomErrors = true;
所以你的代码应该是这样的. protected void Application_Error() { //... Response.TrySkipIisCustomErrors = true; Response.StatusCode = 404; //...rest of your code } 另请查看此链接以获取更多信息http://www.west-wind.com/weblog/posts/2009/Apr/29/IIS-7-Error-Pages-taking-over-500-Errors (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 为什么在ASP.NET MVC中使用lambdas而不是反
- asp.net-mvc – ASP.NET MVC中的非字符串角色名称?
- asp.net – 将网站部署到azure和传统的IIS
- asp.net – Web.config自定义错误模式冲突
- asp.net-mvc – 如何防止MVC3 html转义我的验证消息?
- asp.net-mvc – 为什么我要将WCF与MVC一起使用?
- asp.net – Web API模型属性为null
- 为什么我需要停止使用<%= ...%>来渲染并开始使用Asp.net
- asp.net-mvc-3 – 通过使用jQuery Script调用URL.Action生成
- asp.net-mvc – 在ASP.NET MVC3 Razor的渲染时间视图中获取
推荐文章
站长推荐
- asp.net – 用于asp超链接的CSS
- asp.net – 如何从包含UserControls的Repeater获
- .net – coreclr的哪个版本?
- asp.net – 无法在动态创建的System.Web.UI.WebC
- asp.net-mvc-4 – 使用Bootstrap日期时间选择器,
- ASP.NET MVC教程三:ASP.NET MVC部署方式
- asp.net – 没有触发按钮的UpdatePanel更新
- AntiXss.HtmlEncode vs AntiXss.GetSafeHtmlFrag
- asp.net – 检查是否存在Web服务
- asp.net-mvc – 我为什么要测试我的HTMLHelpers?
热点阅读