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

12
我的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

“web.config中的新system.webserver部分”仅适用于IIS7.0,但您的问题涉及到IIS6.0。请问您使用的是哪个版本的IIS? - eu-ge-ne
5个回答

16

在和IIS7一起工作时,我发现需要填充web.config的两个部分(system.websystem.webServer) - 请参见Elmah not working with asp.net site

也许这与此相关。


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

.NET Core应该添加在哪里? - user123456

2
对于Elmah,我们需要区分两件事情: 首先是http模块执行所有的错误日志记录、发送邮件等工作。 其次是http处理程序,显示错误日志页面和其他页面(rss等)。
我遇到了404资源未找到的相同问题,因为我的设置有点奇怪!在我的开发机器上(windows 7, iis 7),Elmah像魔术一样运行良好,因为应用程序池在集成管道模式下工作。然而,在生产机器上,应用程序使用托管管道,我尽了最大努力使Elmah工作,但都无济于事...
然后我想到了使用常规aspx页面来显示UI(错误日志页面、rss、错误详细信息等)。我下载了源代码,进行了一些更改(抱歉Atif,我不得不这样做,因为我需要最快的解决方案),然后在我的应用程序中,我创建了一个文件夹,其中包含从Elmah定义的页面继承的常规aspx页面。该页面只包含一行(例如:对于详细页面:<%@ Page Language="C#" Inherits ="Elmah.ErrorDetailPage"%>)
现在,我能够运行Elmah,无论是IIS 6/7,它都像魔术一样运行良好...它让我免受正确配置http处理程序和解决其工作的大头疼之苦!此外,配置安全性要简单得多!
我不知道社区是否对这个解决方案感兴趣(如果是,我准备发布我的全部更改)。
希望这能给你提供一个替代方式的解决问题的思路(如果你需要修改后的dll和完整使用说明,请告诉我!)

1
在IIS的应用程序池设置中,如果您不想更改代码或web.config文件,请将“托管管道模式”设置为“经典”。这样,您的axd.s将像以前一样工作。

0
你能否发布你的web.config文件的其余部分?
或者,如果你足够熟悉,你可以确保web.config文件中的httpHandlers和httpModules(而不是handlers和modules)部分已经正确填写了吗?

1
谢谢大家,实际上,我还需要在 web.config 文件的新 system.webserver 部分中添加条目。 - theraneman
我也试过了,为什么不把这个作为解决方案发布呢? - Martin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接