NLog giving exception Possible explanation is lack of zero arg and single arg Common.Logging.Configuration.NameValueCollection constructors(NLog 给出异常可能的解释是缺少零参数和单个参数 Common.Logging.Configuration.NameValueCollection 构造函数)
问题描述
我将 NLog 添加到我的应用程序和它的测试项目中.它们都是同一解决方案的一部分.从应用程序内部 NLog 工作.但是从测试项目中得到以下异常:
I added NLog to my application and the test project for it. Both of them part of the same solution. From inside the application NLog works. But from test project get below exception:
Unable to create instance of type Common.Logging.NLog.NLogLoggerFactoryAdapter. Possible explanation is lack of zero arg and single arg Common.Logging.Configuration.NameValueCollection constructors
我的 NLog 配置如下:
My NLog configuration is below:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Common.Logging" publicKeyToken="af08829b84f0328e" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.2.0" newVersion="2.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<common>
<logging>
<factoryAdapter type="Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog20">
<arg key="configType" value="INLINE" />
</factoryAdapter>
</logging>
</common>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" internalLogFile="C:gitfoologs
log.log" internalLogLevel="Warn">
<extensions>
<add assembly="NLog.RollbarSharp" />
</extensions>
<targets>
<target xsi:type="RollbarSharp" name="Rollbar" />
<target xsi:type="File" name="FileLog" layout="${date:format=yyyy-MM-dd HH:mm:ss}|${level:uppercase=true}|${logger}|${message}${onexception:${exception:format=tostring}}" encoding="iso-8859-2" fileName="C:gitfoologsfoo-${shortdate}.log" archiveFileName="C:gitfoologsarchivesfoo-${shortdate}.{#####}.log" archiveAboveSize="5000000" archiveNumbering="Sequence" concurrentWrites="true" keepFileOpen="false" />
</targets>
<rules>
<logger name="*" minLevel="Trace" writeTo="FileLog" />
<logger name="*" minLevel="Error" writeTo="Rollbar" />
</rules>
</nlog>
packages.config 文件
packages.config file
<packages>
<package id="Common.Logging" version="2.3.1" targetFramework="net45" />
<package id="Common.Logging.NLog20" version="2.3.1" targetFramework="net45" />
<package id="NLog" version="3.1.0.0" targetFramework="net45" />
<package id="NLog.RollbarSharp" version="0.1.2.0" targetFramework="net45" />
<package id="RollbarSharp" version="0.3.1.0" targetFramework="net45" />
</packages>
推荐答案
当我仔细查看时,发现一个内部异常,抱怨找不到 nlog 2.0.0 dll.找到如下解决方案
When I took a closer look there was an inner exception which complained an nlog 2.0.0 dll was not found. Found a solution as follows
- 删除所有与 nlog 和 commons logging 重启应用程序相关的包.如果包没有被 nuget 删除,请手动编辑 .csproj 文件和 .packages 文件以删除对 Commons 日志记录或 nlog 包的所有引用.
- 然后通过在搜索文本框中输入
Common.Logging.Nlog
来搜索最新的 nlog 包.然后选择最新的 nlog 包,它将安装所有其他需要的包,以便通过公共日志记录作为依赖项使用 nlog.如下所示: 在您的
web.config
中更新您的工厂适配器元素在我的情况下,我选择了 31,因此将其更新为
- Delete all packages related to nlog and commons logging restart application. If the packages don't get deleted by nuget edit .csproj file and .packages file manually to remove all references to Commons logging or nlog packages.
- Then searched for latest nlog package as by entering
Common.Logging.Nlog
in search text box. Then pick the latest nlog package and it will install all other needed packages for using using nlog through commons logging as a dependency. As shown below: In your
web.config
update your factory adapter element In my case i selected 31 so updated it to
附:如果您收到错误 配置部分不能包含 CDATA 或文本元素.
那么问题必须是配置文件中的类型.
P.S. If you are getting error The configuration section cannot contain a CDATA or text element.
Then the problem has to be a type in your config file.
这篇关于NLog 给出异常可能的解释是缺少零参数和单个参数 Common.Logging.Configuration.NameValueCollection 构造函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:NLog 给出异常可能的解释是缺少零参数和单个参数 Common.Logging.Configuration.NameValueCollection 构造函数
基础教程推荐
- MS Visual Studio .NET 的替代品 2022-01-01
- 将 XML 转换为通用列表 2022-01-01
- SSE 浮点算术是否可重现? 2022-01-01
- rabbitmq 的 REST API 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- c# Math.Sqrt 实现 2022-01-01
- 如何激活MC67中的红灯 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30