Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
C# 具有ASP.NET CORE 2和AspNetBufferingWrapper的NLog-未找到错误_C#_Logging_Asp.net Core_Nlog - Fatal编程技术网

C# 具有ASP.NET CORE 2和AspNetBufferingWrapper的NLog-未找到错误

C# 具有ASP.NET CORE 2和AspNetBufferingWrapper的NLog-未找到错误,c#,logging,asp.net-core,nlog,C#,Logging,Asp.net Core,Nlog,我正在使用ASP.NET CORE 2.1和NLog。我可以登录到电子邮件,文件和内部日志没有问题 我想为http请求发送一封电子邮件,就像该请求的日志一样 我读到这个AspNetBufferingWrapper可以作为参考 在我的nlog.config中,我有以下目标…aspnetbuffer包装我的工作电子邮件目标 内部日志响应此错误消息 nlog.config失败。异常:NLog.nlogConfiguration异常:解析C:\inetpub\wwwroot\IT\TEST\ACES

我正在使用ASP.NET CORE 2.1和NLog。我可以登录到电子邮件,文件和内部日志没有问题

我想为http请求发送一封电子邮件,就像该请求的日志一样

我读到这个AspNetBufferingWrapper可以作为参考

在我的nlog.config中,我有以下目标…aspnetbuffer包装我的工作电子邮件目标


内部日志响应此错误消息

nlog.config失败。异常:NLog.nlogConfiguration异常:解析C:\inetpub\wwwroot\IT\TEST\ACES\Main\ACES.Web\bin\Debug\netcoreapp2.1\NLog.config时异常。-->System.ArgumentException:找不到目标:“AspNetBufferingWrapper”。是否不包括NLog.Web? 位于NLog.Config.Factory`2.CreateInstance(字符串名称) 在NLog.Config.XmlLoggingConfiguration.ParseTargetsElement(NLogXmlElement targetsElement)中 在NLog.Config.XmlLoggingConfiguration.ParseNLogElement(nlogxmlement nlogElement,字符串文件路径,布尔自动添加错误) 在NLog.Config.XmlLoggingConfiguration.Initialize(XmlReader读取器、字符串文件名、布尔ignoreErrors)

为完整起见,我将在Program.cs中包含我的设置

 public static IWebHost CreateDefaultBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()                
            .ConfigureLogging((context, logging) => {
                logging.ClearProviders();                    logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
                if (context.HostingEnvironment.IsDevelopment())
                {
                    logging.AddDebug();
                }
            })
            .UseNLog()  // NLog: setup NLog for Dependency injection
            .Build();
公共静态IWebHost CreateDefaultBuilder(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.ConfigureLogging((上下文,日志)=>{
logging.ClearProviders();logging.SetMinimumLevel(Microsoft.Extensions.logging.LogLevel.Trace);
if(context.HostingEnvironment.IsDevelopment())
{
logging.AddDebug();
}
})
.UseNLog()//NLog:为依赖项注入设置NLog
.Build();
我已经把这些nuget软件包装上了

我不知道怎么解决 找不到目标:“AspNetBufferingWrapper”。是否不包括NLog.Web?在NLog.Config.Factory`2.CreateInstance(字符串名称)

为什么能找到目标


这是正确的。AspNetBufferingWrapper位于NLog.Web包中,而不是NLog.Web.AspNetCore中

它还没有移植到ASP.NET核心,因此它只支持ASP.NET非核心


我不知道您的问题的答案,但您应该修复包装器的属性,现在它们有值的类型名称,而不是值本身。。。例如:
growBufferAsNeeded=“Boolean”
=>
growBufferAsNeeded=“true”
也许您需要向
NLog.Web.AspNetCore
添加一个nuget/PackageReference:-似乎您的目标和缺少的程序集都在这里定义了是的,谢谢,我也尝试了正确设置属性。是,已包括NLog.Web.AspNetCore。仍然不起作用。目前,我并不认为AspNetBufferingWrapper不能与asp.net内核一起工作。我希望其他人取得更大的成功。你是否遵循了你提供的链接中的备注部分?您似乎还需要更新httpModules以包含对程序集的引用。你可能是对的,但不是在核心工作。如果您阅读我前面链接的页面上的nuget描述,它没有提到“目标”,只是“帮助程序和布局渲染器”。如果您阅读asp.net版本的描述,它会显式地调用“其他目标”。也许这是要在nlog github问题中发布的内容。另请参阅此处的讨论: