我无法弄清楚如何让Elmah在我的Asp.net MVC项目的生产主机上工作。在我的上一台主机上,所有内容都已正确设置,并且/Elmah.axd
成功启动了错误记录器。但是,在生产主机上,它给了我500个错误代码。我不知道还有什么可以调试这个问题。我的web.config看起来像:
<configSections>
<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>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
</modules>
<handlers>
<add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</handlers>
</system.webServer>
<system.web>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
</httpModules>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
</system.web>
<elmah>
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="MyDbContext" />
</elmah>
答案 0 :(得分:0)
您可能忘记使用以下规则更新RegisterRoutes
:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("elmah.axd");
}
这些链接可能会对您http://code.google.com/p/elmah/wiki/MVC和How to get ELMAH to work with ASP.NET MVC [HandleError] attribute?
有所帮助答案 1 :(得分:0)
事件日志应该能够为您提供有关错误500的更多信息。显然最好的方法是将调试器附加到IIS实例,但我猜这是不可能的!
要检查的另一件事是两个服务器是x86还是x64,因为即使ELMAH是独立于平台的,它的一些依赖也不是。
答案 2 :(得分:0)
以下是在IIS上调试500错误的方法:
在 IE GOTO:互联网选项 - &gt;高级 - &gt;禁用:显示友好的HTTP错误消息
之后你会得到一个可以调试的正常错误: - )
Advanced Internet options http://www.communitymx.com/content/source/A66B8/friendly.gif