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

时间:2011-07-15 08:55:37

标签: c# asp.net-mvc elmah

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

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

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

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

System.InvalidOperationException :未找到视图“错误”或其主控,或者没有视图引擎支持搜索的位置。搜索了以下位置:〜/ 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 个答案:

答案 0 :(得分:0)

从消息〜/ Views / Home / Error.aspx看起来它试图找到一个名为error.aspx的视图,我认为在创建MVC3网站时我默认在共享/文件夹中。

也许你应该看看:

http://weblogs.asp.net/scottgu/archive/2008/07/14/asp-net-mvc-preview-4-release-part-1.aspx