Я пытаюсь использовать Elmah для регистрации ошибок в моем приложении MVC. Но по какой-то причине он сообщает о неправильной ошибке.
Я помещаю следующий код в свой класс контроллера, чтобы убедиться, что возникает ошибка:
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="[email protected]"
to="[email protected]"
cc="[email protected]"
bcc="[email protected]"
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 не обрабатывает исключение.
Может ли кто-нибудь определить, что я делаю неправильно? Мне нужно опубликовать еще немного кода?
Большое спасибо за любую помощь, которую вы можете мне оказать.
Error
? - person Oded   schedule 15.07.2011