我使用NuPack工具将Elmah添加到我的开发人员计算机上的网站上。这就像一个魅力,但当我向elmah.axd页面发送请求时,我得到的回报是500 - 内部服务器错误。
我的代码设置:
Visual Studio 2010
网站建立在EPiServer 4.62B之上
在.NET Framework 2上运行(因为EPiServer)
我的IIS设置:
IIS 7.5
经典的.NET AppPool(因为EPiServer)
我的电脑:
运行Windows 7 32位(因为EPiServer)
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>
在configSections内。
<elmah>
<security allowRemoteAccess="yes" />
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
</elmah>
在这个阶段我真的不需要allowRemoteAccess,因为我正在从我的机器运行,但是此刻正在尝试任何事情。我知道elmah.dll正在运行,因为日志文件正在创建。
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
在system.web中HttpHandlers的。
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
在system.web中的HttpModules。
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
在system.webServer中模块
<add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
在system.webServer中处理
我已基本上将我在网上找到的所有建议添加到web.config中,但没有它做任何好事。这让我相信其他什么是错的,有什么想法吗?
答案 0 :(得分:2)
你没有到Elmah数据库的连接字符串。
您是否已将Elmah和SqlLite dll添加到bin文件夹中?
我这里有一个最小的设置指南可能会有所帮助:
http://www.codeulike.com/2010/05/quick-elmah-setup.html
答案 1 :(得分:0)
我也有这个问题。我发现唯一有效的方法是将我的应用程序池切换到集成模式。我的应用程序尚未针对此进行全面测试,因此我没有在生产中对此进行更改。
答案 2 :(得分:0)
elmah_error数据库表可能需要修复。
在我的情况下发生了几次并通过修复,它已被修复。
我有完全相同的问题elmah-&gt; 500 - 内部服务器错误。
只需运行mysql命令:
repair table elmah.elmah_error;
并重试访问elmah。