11

我的 ASP.NET MVC 应用程序位于 IIS 6.0 webroot 文件夹中名为 Stuff 的文件夹中。所以我以http://localhost/Stuff/Posts访问我的页面。我在使用 Visual Studio 的内置网络服务器时让 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
4

5 回答 5

15

使用 IIS7 我发现我需要web.config填充 ( system.webAND system.webServer) 的两个部分 - 请参阅Elmah 不使用 asp.net 站点

也许这是相关的。

于 2009-07-24T09:14:33.723 回答
5

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

于 2009-07-14T08:52:01.280 回答
2

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

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

然后,我有了使用常规 aspx 页面显示 UI(错误日志页面、rss、错误详细信息……)的想法。我下载了源代码,进行了一些更改(抱歉,Atif,我被迫这样做,因为我需要最快的解决方案),然后在我的应用程序中,我创建了一个文件夹,在该文件夹下创建了从 Elmah 定义的页面继承的常规 aspx 页面。该页面仅包含一行(例如:对于详细信息页面:<%@ Page Language="C#" Inherits ="Elmah.ErrorDetailPage"%>)

现在,无论 IIS 6/7 是什么,我都能运行 Elmah,而且它的工作方式非常有魅力。它让我免于正确配置 http 处理程序和对其工作进行故障排除的大麻烦!此外,配置安全性要简单得多!

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

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

于 2010-02-21T05:55:43.097 回答
1

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

于 2010-08-17T13:48:30.033 回答
0

您可以发布其余的 web.config 吗?

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

于 2009-07-14T06:17:44.680 回答