1

设置:

我在根文件夹 (~/tracker) 的子文件夹中有一个 ASP.NET MVC 4 应用程序。

我使用 NuGet 在 MVC 应用程序中安装了 ELMAH。

开发机器:

在我的开发机器上,网站位于根目录。ELMAH 工作正常。

服务器上的问题:

在服务器上,我可以看到 ELMAH 页面,但尽管产生了错误,但没有记录任何错误。它只是说:“没有发现错误”。

它也没有任何样式出现。

服务器上的 Web.config:

服务器 web.config 上的 Elmah 相关位是:

配置部分:

<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>

应用设置:

<appSettings>
    <add key="elmah.mvc.disableHandler" value="false" />
    <add key="elmah.mvc.requiresAuthentication" value="true" />
    <add key="elmah.mvc.allowedRoles" value="Admin" />
    <add key="elmah.mvc.route" value="tracker/elmah" />
  </appSettings>

http模块:

<httpModules>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
    </httpModules>

系统.web服务器:

<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
    </modules>
  </system.webServer>

最后:

<elmah>
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/Elmah" />
    <security allowRemoteAccess="yes" />
  </elmah>
4

1 回答 1

1

好的,解决了这个:

将写入权限添加到 ~/App_Data/Elmah 文件夹。

正如猫鼬所说,简单。

我通过找到以下 SO 答案解决了这个问题:

Elmah.MVC 不会在生产环境中记录错误

还有一个用于设置 ELMAH 文件夹权限的指南,或者更确切地说,是该问题的已接受答案中的指南链接。

我无法工作的是 ELMAH 页面的样式。有什么建议么?

于 2013-02-14T13:01:39.380 回答