ELMAH 中的错误信号不适用于 ASP.NET MVC
-
25-09-2019 - |
题
我的理解是,引发错误信号应该记录我的错误或点击自定义 HandleErrorWithELMAHAttribute 类(取自此 例子) ,但两者都没有。
我正在为有问题的控制器使用 HandleErrorWithElmah 装饰器。当涉及到控制器中未处理的异常时,错误日志记录会起作用(我显式调用 LogException 而不是使用第二个代码块中提到的条件) 例子)。但是用于处理错误的错误信号功能让我感到困惑。错误信号如何工作...它是否应该做除日志记录之外的其他事情...如果是这样,我如何使用它记录我处理的异常?
这是我用来发出已处理错误信号的代码
ErrorSignal.FromCurrentContext().Raise(new Exception("Some Handled Error"));
下面是我在网络配置中的设置片段
<configSections>
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
</configSections>
<elmah>
<security allowRemoteAccess="yes" />
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="Log" />
</elmah>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
</httpModules>
解决方案
我将 Elmah 与 .NET MVC 一起使用,并以编程方式引发 Elmah 异常对我来说很有效。我可能在这里抓着一根救命稻草,但从下面的第四条评论来看 这一页 在 Elmah 站点上,Web.config 中包含几行,这些行不在上面的示例中。
可能您只是没有在代码片段中包含这些行,但我想无论如何我都会把它扔掉
不隶属于 StackOverflow