为ASPNET Core 2.2 webapi应用安装事件源

时间:2019-06-27 14:37:57

标签: c# asp.net asp.net-core event-log serilog

我需要一些帮助来理解将aspnet核心webapi应用程序部署到服务器需要做什么,以便正确安装事件接收器而无需以管理员身份运行该应用程序。

在开发环境中,以管理员身份运行的Visual Studio可以启动我的aspnet核心webapi应用程序,从而允许它在本地计算机上创建事件接收器。创建事件接收器后,即使未使用管理员权限启动应用程序,应用程序也会记录事件。

将应用程序发布到测试服务器并在IIS下运行时,如果日志记录配置为创建事件源(如果本地计算机上不存在),则应用程序将无法加载。

我正在将Serilog与Serilog.Sinks.EventLog扩展一起使用。

将manageEventSource设置为true时,由于无法创建事件源,因此不会加载应用程序。当manageEventSource设置为false时,应用程序将正确加载,但不会将任何事件发送到EventLog。

        Log.Logger = new LoggerConfiguration()
          .MinimumLevel.Debug()
          .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
          .Enrich.FromLogContext()
          .WriteTo.Console()
          .WriteTo.File("webservices-log.txt", rollingInterval: RollingInterval.Day)
          .WriteTo.EventLog("WebServices", manageEventSource: false, restrictedToMinimumLevel: LogEventLevel.Error)
          .CreateLogger();

Visual Studio完成发布后,我需要运行该应用程序并将错误记录到事件日志中,但是如果尚未安装事件接收器,则该应用程序将失败,除非直接忽略创建步骤。如何更新发布步骤以在目标计算机上安装事件接收器,或者在发布到目标计算机之前我需要做些什么手动干预?

0 个答案:

没有答案