Elmah 不适用于 asp.net mvc

Posted

技术标签:

【中文标题】Elmah 不适用于 asp.net mvc【英文标题】:Elmah does not work with asp.net mvc 【发布时间】:2011-01-08 22:56:58 【问题描述】:

我花了无数个小时试图让 Elmah 与 asp.net mvc 一起工作,但无法让它 100% 工作。现在所有的日志记录工作都很好,但是 HttpHandlers 都搞砸了。每次我尝试登录管理员帐户时,我都会自动重定向到 Elmahs 列表页面。

这没有任何意义,因为 elmah 的路径只是 elmah.axd(这就是我在 web.config 中用于 httphandler 的路径),而我的管理路径类似于 /MyAdmin/login,所以我看不到联系。我还在我的路线表中为 elmah 设置了忽略路线。 \

总结一下。

Elmah 日志记录有效,错误显示页面也有效。当我尝试登录我的管理员帐户时,它会自动重定向到 Elmahs 错误显示页面。我不知道为什么。

如果我注释掉

routes.IgnoreRoute("elmah.axd");

我的登录有效。如果我把它留在那里,它总是会重定向到 elmah。

【问题讨论】:

【参考方案1】:

我终于明白了。没有人会得到这个...我有一个对 RouteDebugger.dll 的引用,我从“Asp.net MVC Framework Unleashed”一书中得到,并且由于某种原因,如果 Elmah 被启用,这个 dll 会弄乱我所有的发布请求。

我想通了纯属愚蠢的运气。我无法让 RouteDebugger 工作,所以我删除了引用并添加了一个不同的引用,然后一切正常。

【讨论】:

【参考方案2】:

Google 做了一个完整的演练... 将您的设置与他们的设置相匹配... 我不懂 elmah 并且能够做到。http://code.google.com/p/elmah/wiki/MVC -马克

【讨论】:

谢谢,但我经历了好几次都没有运气 管理部分的路线是什么?【参考方案3】:

猜测了一下,但你能不能尝试使用Route Debugger 看看是否有问题到达正确的路线?

另外,IgnoreRoute 调用是否在所有 MapRoute 调用之前?

【讨论】:

【参考方案4】:

在 FIDDLER 上观察流量。它应该会给你一些关于发生了什么的线索。

【讨论】:

我使用 Live Http Headers 不确定它是否有很大不同。当我点击我的表单按钮时,它只是加载了 elmah,它甚至没有显示重定向。【参考方案5】:

我认为这是设置它的更新版本,飓风指出的是早期版本:http://code.google.com/p/elmah/wiki/DotNetSlackersArticle

【讨论】:

以上是关于Elmah 不适用于 asp.net mvc的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC - Elmah 不工作并为 elmah.axd 返回 404 页面

Elmah 适用于 localhost,但不适用于生产?

Elmah 和 ASP.NET MVC 3

未记录 ELMAH 和 ASP.NET MVC 自定义错误

在 Apache 上运行 ASP.net MVC 时无法访问 elmah.axd

为啥会收到奇怪的错误消息 asp.net mvc "elmah.mvc logging library"?