使用路由的ASP.NET 4 Web表单 - 在错误时不调用Application_Error

时间:2012-03-23 15:47:22

标签: c# asp.net webforms

我有一个使用URL路由的ASP.NET 4 Web窗体应用程序。我在Application_Start中指定了以下路由:

routes.MapPageRoute(“Schedule”,“Schedule”,“〜/ Schedule.aspx”);

非常简单。我只是想将“http://example.com/Schedule”的请求重新路由到“http://example.com/Schedule.aspx”。效果很好。但是,如果我的应用程序在使用路由时抛出异常,则不会执行Global.asax中的Application_Error方法。我看到了通用.net错误消息。如果我在使用完整的“Schedule.aspx”时抛出相同的异常,它会按预期工作。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

来自:http://msdn.microsoft.com/en-us/library/24395wz3.aspx

  

Global.asax文件中定义的错误处理程序仅捕获ASP.NET运行时处理请求期间发生的错误。例如,如果用户请求您的应用程序中没有出现的.aspx文件,它将捕获错误。 但是,如果用户请求不存在的.htm文件,它不会捕获错误。对于nonASP.NET错误,您可以在Internet信息服务(IIS)中创建自定义处理程序。也不会针对服务器级错误调用自定义处理程序。

我认为粗体文本为何没有按预期工作。对不起,但我没有一个很好的解决方案。