【发布时间】:2014-02-11 18:26:07
【问题描述】:
背景/目标
我有一个 asp.net 4.5 Web 表单项目,现在在 asp.net one 架构下(因此我们将 MVC 集成到几个部分中)。
我正在尝试将Elmah 添加到此设置中。我的目标是:
- 在内存中记录 50 个错误,仅限本地访问,
- 将所有错误记录到 SQL 数据库(我们已使用 Elmah 脚本设置)。
- 将 WebForms 和 MVC 错误输出捕获到 Elmah。
问题
但是,当我通过 nuget 添加 Elmah 包时,它似乎没有对 web.config 进行任何修改。所以,当我浏览到 /elmah.axd 时,我看到了:
找不到路径“/elmah.axd”。 System.Web.HttpException (0x80004005):找不到路径“/elmah.axd”。在 System.Web.HttpNotFoundHandler.ProcessRequest(HttpContext context) 在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,布尔&完成同步)
这是有道理的,因为尚未修改 web.config 以添加处理程序。
但是,添加 elmah.axd 确实为我们提供了 MVC 路由。但是,我的直觉和一些初步测试告诉我,这些仅涵盖 MVC 范围内的错误。
问题
- 如何在这种情况下正确配置 elmah,以使 elmah 和 elmah.mvc 包都值得设计?
【问题讨论】:
-
您要添加哪个 ELMAH NuGet 包?
-
我已经完成了
Install-Package Elmah,最终我完成了Install-Package Elmah.MVC,但那是在已经配置了 XML 之后。 -
Elmah 包本身应该添加配置。 Elmah.Mvc 做了一些其他的事情,比如声明 /elmah URL(而不是 elmah.axd)。
-
@ThomasArdal 正确,这就是我的印象。所以我想知道为什么我的 web.config 根本没有被修改。 (安装 elmah 包后,web.config 没有提及“elmah”这个词,并且差异看起来几乎相同(尽管它似乎确实做了一些事情,例如在标签关闭之前删除空格等)
标签: asp.net asp.net-mvc configuration webforms elmah