Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc NLog在所有aspnet布局渲染器上引发配置异常_Asp.net Mvc_Asp.net Mvc 3_Nlog - Fatal编程技术网

Asp.net mvc NLog在所有aspnet布局渲染器上引发配置异常

Asp.net mvc NLog在所有aspnet布局渲染器上引发配置异常,asp.net-mvc,asp.net-mvc-3,nlog,Asp.net Mvc,Asp.net Mvc 3,Nlog,我一直在努力在我的ASP.NET MVC 3应用程序上设置NLog v2,到目前为止效果非常好。(我使用的是来自OfficeNuGet存储库的包)但是,当我试图更改日志布局以包含任何aspnet-*布局呈现器时,我得到一个配置错误。我已将问题简化为以下最小用例: 在configSections块中: Nlog块: 如果我改变布局,使用任何不属于aspnet*系列的渲染器组合,效果会很好(我没有对每一个都进行测试,但我已经研究了很多)。我得到的错误是: Configuration Err

我一直在努力在我的ASP.NET MVC 3应用程序上设置NLog v2,到目前为止效果非常好。(我使用的是来自OfficeNuGet存储库的包)但是,当我试图更改日志布局以包含任何aspnet-*布局呈现器时,我得到一个配置错误。我已将问题简化为以下最小用例:

在configSections块中:


Nlog块:


如果我改变布局,使用任何不属于aspnet*系列的渲染器组合,效果会很好(我没有对每一个都进行测试,但我已经研究了很多)。我得到的错误是:

Configuration Error 
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: An error occurred creating the configuration section handler for nlog: Exception occurred when loading configuration from C:\..[snip]..\web.config

Source Error: 


Line 16: </configSections>
Line 17: 
Line 18:   <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
Line 19:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" throwExceptions="true">
Line 20: 
配置错误
描述:处理服务此请求所需的配置文件时出错。请查看下面的特定错误详细信息,并适当修改配置文件。
分析器错误消息:为nlog创建配置节处理程序时出错:从C:\..[snip]..\web.config加载配置时发生异常
源错误:
第16行:
第17行:
第18行:
第20行:
我真的不知道发生了什么事。我不确定渲染器导致配置无效的原因是什么。我一天中大部分时间都在忙这件事,结果一事无成,所以我希望这里有人能帮上忙


谢谢大家!

确保您引用了
NLog.Extended
程序集,该程序集是定义这些布局的地方,并且必须由NuGet软件包添加到引用中:


在我的例子中,我使用的是le_nlog的扩展,出于某种原因,它没有安装在应用程序中

因此,我通过这样做安装了*le_nlog*:

PM> Install-Package le_nlog

如果Darin's不起作用的替代解决方案

你必须有达林提到的NLog.Extended引用

从NLog 2.0开始,您不需要在配置XML中添加引用

我的问题是,我的web层(web.config所在的位置)中没有对NLog.Extended的硬引用,因此编译器没有将文件复制到需要的位置

通过向NLog添加硬引用,可以轻松解决此问题。无论您在何处配置日志,这都是一个无操作的扩展:

//forces the compiler to include NLog.Extensions in all downstream output directories
private static AspNetApplicationValueLayoutRenderer blank = new AspNetApplicationValueLayoutRenderer();

从NLog 4.0开始,ASP.NET渲染现在位于NLog.Web中

谢谢。我现在觉得有点傻,因为我错过了。我真的很感谢你的帮助!它只是拒绝为我工作。无论我尝试什么变量,输出都是空白的:(正如一些答案所说:这现在在NLog.Web中。我完全没有注意到这一点,因为所有在线信息都告诉您添加NLog.Extended