我在根文件夹(〜/ tracker)的子文件夹中有一个ASP.NET MVC 4应用程序。
我使用NuGet在MVC应用程序中安装了ELMAH。
在我的开发机器上,网站位于根目录。 ELMAH工作正常。
在服务器上,我可以看到ELMAH页面,但是尽管生成错误,也不会记录任何错误。它只是说:“没有发现错误。”
它也没有任何样式。
服务器web.config上的Elmah相关位是:
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>
的appSettings:
<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>
的HttpModules:
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
system.webServer:
<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>
答案 0 :(得分:1)
为〜/ App_Data / Elmah文件夹添加写权限。
正如猫鼬说的,简单。
我通过找到以下SO答案解决了这个问题:
Elmah.MVC does not log errors in production environment
还有一个指南,用于设置ELMAH文件夹的权限,或者更确切地说,是指向该问题的接受答案中指南的链接。
我无法工作的是ELMAH页面的样式。有什么建议吗?