Elmah似乎可以在我的开发机器上工作,但在服务器上我可以请求elmah.axd罚款,但它没有记录任何异常。没有错误消息,也没有反馈它只是没有工作(这应该是垃圾软件公司的口号)
以下是我的web.config文件中的精选集锦:
<elmah>
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/errors" />
<security allowRemoteAccess="false" />
</elmah>
<location path="elmah.axd" inheritInChildApplications="false">
<system.web>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
</system.web>
<system.webServer>
<handlers>
<add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
<modules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</modules>
</system.webServer>
</location>
有什么想法吗?
答案 0 :(得分:0)
我认为配置有问题......
<location path="elmah.axd" inheritInChildApplications="false">
当我安装Elmah Nuget时,有点乱糟糟的web.config。它添加了不必要的和损坏的xmlns=""
,并添加了其他system.webserver
和system.web
部分,这些部分是不允许的。
某些东西必须让它混淆,这导致添加了这个位置标记,我猜测导致模块/处理程序的范围太窄而无法捕获所有错误。
我不知道为什么这在本地工作但不是远程工作。也许是因为我的远程部署在虚拟目录中?