我正在构建ASP.NET MVC3应用程序,除了标准的MVC异常处理机制之外,我想在Application_Start中出现错误时显示一个静态html错误页面,并在那里抛出未处理的异常。
我刚刚添加了
<customErrors mode="On" defaultRedirect="Error.htm">
并期望在所有“错误”情况下重定向到Error.htm。它与Visual Studio开发服务器一起正常工作,但在IIS7上根本不起作用(我看到标准的黄色屏幕显示“要在...上启用此特定错误消息的详细信息”)。似乎在Application_Start中抛出异常时,ASP.NET重定向到Error.htm,此时IIS再次调用Application_Start方法,同样的异常再次抛出aaa和欢迎来到无限循环。
有哪些方法可以解决此问题?可以在不更改IIS设置的情况下完成吗?如果没有,它应该如何在IIS端正确完成?
答案 0 :(得分:-1)
迟到总比没有好。这是处理错误的标准方法:
testproject \视图\共享\ Error.cshtml
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = "Error";
}
<p>an error occurred</p><br />
<p>Try again.Go on this <a href="javascript:history.go(-1)">link</a></p>
testproject \控制器\ TestController.cs
namespace testproject.Controllers
{
[HandleError]
public class TestController : Controller
{}
}
testproject \的Web.config
<system.web>
<customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml" />
</system.web>