C# ASP.Net Core 1日志记录错误-找不到源应用程序中事件ID xxxx的说明
我想从ASP.Net核心应用程序的控制器方法写入Windows事件日志 我遇到的问题是,在我希望写入日志信息的地方,我一直在获取错误/信息日志: 无法从源应用程序中获取事件ID xxxx的描述 找到了。引发此事件的组件未安装 在本地计算机上或安装已损坏。你可以 在本地计算机上安装或修复组件 如果事件起源于另一台计算机,则显示信息 必须与事件一起保存 本次活动包括以下信息: My.Full.Qualified.Namespace.WebApi.Controllers.MyController错误 发生在方法“MyMethod”中 消息资源存在,但在中找不到该消息 字符串/消息表 作为一个简要说明,在.NETCore之前,我始终或正确地配置了另一个第三方库 我使用的方法是: 在安装Nuget软件包:和之后,我在开始配置代码块中指定C# ASP.Net Core 1日志记录错误-找不到源应用程序中事件ID xxxx的说明,c#,asp.net-core,event-log,C#,Asp.net Core,Event Log,我想从ASP.Net核心应用程序的控制器方法写入Windows事件日志 我遇到的问题是,在我希望写入日志信息的地方,我一直在获取错误/信息日志: 无法从源应用程序中获取事件ID xxxx的描述 找到了。引发此事件的组件未安装 在本地计算机上或安装已损坏。你可以 在本地计算机上安装或修复组件 如果事件起源于另一台计算机,则显示信息 必须与事件一起保存 本次活动包括以下信息: My.Full.Qualified.Namespace.WebApi.Controllers.MyController错误
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory
.AddDebug()
.AddEventLog();
//... rest of the code here
}
对于每个控制器,使用ILogger
方法:
public class MyController : Controller
{
private readonly IMyRepository _myRepository;
private readonly ILogger _logger;
public MyController(IMyRepository myRepository,
ILogger<MyController> logger)
{
_myRepository = myRepository;
_logger = logger;
}
public bool MyMethod(MyRequestObject request)
{
try
{
var response = privateDoSomethingMethod(request);
return response.Success;
}
catch (Exception ex)
{
_logger.LogError(6666,ex, "Error occured when doing stuff.");
return false;
}
}
公共类MyController:Controller
{
私有只读IMyRepository\u myRepository;
专用只读ILogger\u记录器;
公共MyController(IMyRepository myRepository,
ILogger(记录器)
{
_myRepository=myRepository;
_记录器=记录器;
}
公共布尔MyMethod(MyRequestObject请求)
{
尝试
{
var响应=privateDoSomethingMethod(请求);
回应。成功;
}
捕获(例外情况除外)
{
_logger.LogError(6666,例如,“在执行任务时发生错误”);
返回false;
}
}
这是基于
我读过并尝试过:
public static class CustomEventIds
{
public const int Debug = 100;
public const int Information = 101;
public const int Warning = 102;
public const int Error = 103;
public const int Critical = 104;
}
以及:
我想建议您需要创建一个源代码,该源代码通常用于修复此问题,但您已经尝试过了,我使用了Serilog和dotnet core来写入事件日志(尚未升级到2.0)如果所有其他的都失败了,你可以试试。谢谢你的回答,但是我已经指定了一个事件ID。你可以参考代码。如果OP能够安装NuGET包,那么它是可用的。NuGet不允许你安装你的平台不可用的软件包。这里说它在内核中是不可用的。你可以考虑调用ASSEM。bly在运行时可以为您执行事件日志记录,请参见
_logger.LogInformation(CustomEventIds.Debug, "Starting to do something with input: {0}", "test");