首页 文章

ELMAH错误日志记录:返回错误的错误消息

提问于
浏览
1

我正在尝试使用Elmah在我的MVC应用程序中进行错误记录 . 但由于某种原因,它报告了错误的错误 .

我在Controller类中放入以下代码以确保发生错误:

int a = 0;
        int b = 10 / a;

执行此代码后,将立即发送ErrorMail,其中包含以下消息:

System.InvalidOperationException :未找到视图'Error'或其主数据或视图引擎不支持搜索的位置 . 搜索了以下位置:〜/ Views / Home / Error.aspx~ / Views / Home / Error.ascx~ / Views / Shared / Error.aspx~ / Views / Shared / Error.ascx~ / Views / Home / Error . cshtml~ / Views / Home / Error.vbhtml~ / Views / Shared / Error.cshtml~ / Views / Shared / Error.vbhtml

但是正确生成了视图 . 所以我没有看到真正的例外,只有上面的“假” .

我有以下web.config文件:

<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>
  <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
  <errorMail from="noreply@website.com"
         to="me@mycompany.com"
         cc="you@mycompany.com"
         bcc="bcc@mycompay.com"
         subject="elmah error mail" />
  <security allowRemoteAccess="true" />
<!--elmah-->
</elmah>

<system.web>
  <customErrors mode="On" defaultRedirect="~/Error/GeneralError">
  <error statusCode="404" redirect="~/Error/Http404" />
</customErrors>

正如您所看到的,我正在使用不同的页面来表示404错误,以及一般错误(简单地说:所有其余部分) . 我有一个ErrorController,有以下两种方法:

public class ErrorController : Controller
{
    public ActionResult Http404()
    {
        return View();
    }

    public ActionResult GeneralError()
    {
        return View();
    }
 }

如果我在共享文件夹中使用标准的“Error.aspx”,我会看到正确的页面,但没有发送ErrorMail,所以我认为Elmah没有处理异常 .

谁能发现我做错了什么?我需要发布更多代码吗?

非常感谢您给我的任何帮助 .

1 回答

相关问题