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包不起作用