我使用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" />
内部系统.Web| httpHandlers
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
内部系统.Web| httpmodules.
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
内部系统.webServer|模块
<add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
内部系统.webServer|处理程序
我基本上把我能在网上找到的所有建议都添加到了web.config中,但没有任何好处。这让我相信还有别的地方不对劲,有什么想法吗?
3条答案
按热度按时间wlp8pajw1#
您没有到Elmah数据库的连接字符串。
你是否也将Elmah和SqlLite dll添加到你的bin文件夹中?
我这里有一个最小的安装指南,可能会有所帮助:
http://www.codeulike.com/2010/05/quick-elmah-setup.html
nimxete22#
我发现唯一可行的方法是将应用程序池切换到集成模式。我的应用程序还没有完全测试过,所以我没有在生产中改变这一点。
l7mqbcuq3#
elmah_error DB表可能需要修复。
在我的情况下发生了几次,通过修理,它被修复了。
500 - Internal Server Error(内部服务器错误)
运行mysql命令:
repair table elmah.elmah_error;
并重试访问Elmah。