在ASP.NET MVC项目中访问elmah.axd时出现“资源未找到”错误

时间:2009-07-13 16:49:21

标签: asp.net-mvc elmah

我的ASP.NET MVC应用程序位于IIS 6.0 webroot文件夹中名为Stuff的文件夹中。所以我以http://localhost/Stuff/Posts的身份访问我的网页。当我使用Visual Studio的内置Web服务器时,我有EMLAH工作。现在当我访问http://localhost/Stuff/elmah.axd时,我发现资源未找到错误。谁能在这里指出我的错误!这是配置文件条目,

<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/> //Handler
  <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/>
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
  <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/> //Module

5 个答案:

答案 0 :(得分:15)

使用IIS7我发现我需要填充web.config的两个部分(system.websystem.webServer) - 请参阅Elmah not working with asp.net site

也许这是相关的。

答案 1 :(得分:5)

您是否在global.asax中添加了忽略* .axd路由?

答案 2 :(得分:2)

对于Elmah,我们需要区分两件事: 首先,http模块执行错误记录,电子邮件等所有工作。 二,http处理程序,显示错误日志页面和其他页面(rss等)

我遇到了404资源未找到的相同问题,因为我有一个奇怪的设置! 在我的开发机器上,(Windows 7,iis 7)elmah工作就像一个魅力,因为应用程序池在集成管道模式下工作。然而,在生产机器中,应用程序正在使用托管管道,我尽我所能使elmah工作,但这一切都没用......

然后我开始使用常规的aspx页面显示UI(错误日志页面,rss,错误详细信息......)。 我下载了源代码,做了一些更改(对不起Atif,我被迫这样做是因为我需要最快的解决方案)然后在我的应用程序中,我创建了一个文件夹,在该文件夹下我创建了继承自Elmah定义页面的常规aspx页面。 该页面只包含一行(例如:详细信息页面:&lt;%@ Page Language =“C#”Inherits =“Elmah.ErrorDetailPage”%&gt;)

现在,我能够运行Elmah,无论IIS 6/7如何,它都像魅力一样......它让我免于正确配置http处理程序和排除其工作的麻烦!另外,配置安全性要简单得多!

我不知道社区是否对此解决方案感兴趣(如果是,我准备发布我的完整更改)。

希望这能让您了解如何以另一种方式解决问题(如果您需要修改后的dll以及如何使用它的完整说明,请告诉我!)

答案 3 :(得分:1)

如果您不想更改代码或Managed Pipelin Mode文件,请在IIS中的应用程序池设置中将Classic设置为web.config。您的axd.s将像以前一样工作。

答案 4 :(得分:0)

你可以发布你的web.config的其余内容吗?

或者,如果你足够舒服,你能否确保在web.config中正确填写httpHandlers和httpModules(非处理程序和模块)部分?