Elmah nuget 包不更新 web.config

Posted

技术标签:

【中文标题】Elmah nuget 包不更新 web.config【英文标题】:Elmah nuget package doesn't update web.config 【发布时间】: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”这个词,并且差异看起来几乎相同(尽管它似乎确实做了一些事情,例如在标签关闭之前删除空格等) 【参考方案1】:

它可能与您的原始 web.config 文件的现有部分/元素相关,因此 Elmah 包中的 web.config.transform 无法执行某些添加操作。

本文档 - http://docs.nuget.org/docs/creating-packages/configuration-file-and-source-code-transformations 明确描述了 Elmah 包转换将执行的操作,用于之前和之后的 web.config。

【讨论】:

【参考方案2】:

这也发生在我身上,我做了 3 件事。

    为您的项目转到“管理 NuGet 包”,删除有关 Elmah 的所有内容。 重新启动Visual Studio,并以管理员权限打开它。 (不确定是不是这个)。确保你的 web.config 没有打开,因为某些原因 VS 没有更新它。 再次在包管理器控制台上运行 install-package elmah

之后,我的网络配置更新,一切顺利。

【讨论】:

以上是关于Elmah nuget 包不更新 web.config的主要内容,如果未能解决你的问题,请参考以下文章

ADAL .Net Core nuget 包不支持 UserPasswordCredential

VS Code Intellisense对nuget包不起作用

导入简单的自定义 NuGet 包时出错:包不支持任何目标框架

Elmah.MVC 与 Elmah.contrib.Mvc

Elmah 和 ASP.NET MVC 3

三分钟集成elmah xml 格式日志到mvc站点