对elmah.axd的请求总是因500 - 内部服务器错误而失败。为什么? :-(

时间:2010-10-15 09:17:09

标签: asp.net elmah episerver

我使用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中,但没有它做任何好事。这让我相信其他什么是错的,有什么想法吗?

3 个答案:

答案 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。