2013-11-21 62 views
2

我们公司正在转向基于Ektron的C#网站。我只是模糊地熟悉C#语言,而且我之前没有使用过IIS。将顶级异常处理添加到ASP.NET Web应用程序

我想弄清楚如何挂钩到异常处理机制。我想确保如果发生异常并且未被捕获,我可以发送电子邮件并重定向到错误页面。

据我所知,重要的文件是web.config和global.asax。但据我所知,所有web.config可以做的是指定一个重定向URL(我不知道如何恢复抛出的Exception对象中的信息)。而我的项目甚至没有global.asax文件。 (我不确定是否需要创建它,或者如果它已被弃用,或者Ektron为我处理)。

+0

下面是这两个文件所做的:[web.config](http://msdn.microsoft.com/en-us/library/aa306178.aspx),[global.asax](http:// msdn .microsoft.com/EN-US /库/ 1xaas8a2(v = vs.71)的.aspx)。如果你想全局异常处理,你可能想在global.asax中添加一个'Application_Error'处理程序(更多关于这个[这里](http://msdn.microsoft.com/en-us/library/24395wz3(v = VS.100)的.aspx))。顺便说一句,你会发现一个偶然的方法来捡起ASP.Net将很糟糕地为您服务。尽可能早地获得完整的概览。 –

+0

+正如你所问,是的,你创建global.asax文件,如果它不存在(不像web.config它不必)。我认为我们正在谈论普通的ASP.NET,而不是ASP.NET MVC类型的网站 – frno

+0

我知道Ektron使用Webforms而不是MVC。但是我需要自己创建global.asax文件吗?如果是这样,它到底在哪里? –

回答

0

我会使用ELMAH(错误记录模块和处理程序的ASP.NET)发送您的电子邮件。你可以通过NuGet Gallery得到它,你所要做的就是在web.config中添加几行代码。如果你通过NuGet安装,它甚至会更新你的web.config。 Scott Hanselman有关如何实施它的blog post。这篇文章有点过时(2009年4月),但ELMAH一路上没有太多的巨大变化。

要重定向到错误页面,我会使用内置的ASP.NET custom error pages