Elmah在IIS7服务器上无法工作。

7
我已经在我的MVC 3网站上运行了Elmah,在本地开发机器上所有工作都正常,但现在我把网站移到生产服务器上后,Elmah不起作用了。我在生产服务器上使用的是与本地机器相同的SQL帐户(及连接字符串)。EF4连接(与Elmah相同)也运作正常。在事件日志或SQL分析器中没有任何内容。SQL日志中也没有任何错误。对于这种情况你有什么想法或如何排除故障的建议吗?谢谢。

Elmah + MVC + IIS7 是可以正常工作的,我正在使用这个组合。你用什么来存储日志?是 SQL 还是文件? - JK.
@JK - SQL Server 2005 数据库。 - Jerad Rose
1个回答

18

ELMAH使用HttpModule来记录错误。对于IIS6,HttpModules在web.config文件中注册在System.Web下。然而,对于IIS7+,HttpModules应该在system.webserver命名空间下注册。嵌入式开发Web服务器将使用IIS6配置。

IIS6:

  <system.web>
    <httpModules>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
    </httpModules>
  </system.web>

IIS7:

  <system.webServer>
    <modules>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
    </modules>
  </system.webServer>

非常好,这就是问题所在。我找不到这个问题的源头,谢谢你的帮助! - Jerad Rose
2
很好的答案 :) 也解决了我的问题。只是顺便提一下,如果您还想查看错误日志页面“elmah.axd”,则还必须在<system.webServer>而不是<system.web>下注册处理elmah.axd的httpModule,因为新的iis 7集成模式需要这样做。在集成模式下,必须在统一的<system.webServer>/<handlers>中指定ASP.NET处理程序映射。请参见http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis-7/。 - Liviu Trifoi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接