C# 具有ASP.NET CORE 2和AspNetBufferingWrapper的NLog-未找到错误
我正在使用ASP.NET CORE 2.1和NLog。我可以登录到电子邮件,文件和内部日志没有问题 我想为http请求发送一封电子邮件,就像该请求的日志一样 我读到这个AspNetBufferingWrapper可以作为参考 在我的nlog.config中,我有以下目标…aspnetbuffer包装我的工作电子邮件目标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
内部日志响应此错误消息
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问题中发布的内容。另请参阅此处的讨论: