asp.net 对elmah.axd的请求总是失败,并返回500 - Internal server error,为什么?:)

jutyujz0  于 2023-05-30  发布在  .NET
关注(0)|答案(3)|浏览(98)

我使用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中,但没有任何好处。这让我相信还有别的地方不对劲,有什么想法吗?

wlp8pajw

wlp8pajw1#

您没有到Elmah数据库的连接字符串。
你是否也将Elmah和SqlLite dll添加到你的bin文件夹中?
我这里有一个最小的安装指南,可能会有所帮助:
http://www.codeulike.com/2010/05/quick-elmah-setup.html

nimxete2

nimxete22#

我发现唯一可行的方法是将应用程序池切换到集成模式。我的应用程序还没有完全测试过,所以我没有在生产中改变这一点。

l7mqbcuq

l7mqbcuq3#

elmah_error DB表可能需要修复。
在我的情况下发生了几次,通过修理,它被修复了。
500 - Internal Server Error(内部服务器错误)
运行mysql命令:
repair table elmah.elmah_error;
并重试访问Elmah。

相关问题