亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么在重新啟動服務之前我的 Windows 服務不記錄

為什么在重新啟動服務之前我的 Windows 服務不記錄

C#
慕斯709654 2021-07-22 18:13:26
我使用TopShelf創建了一個Windows 服務,使用Log4Net添加了日志記錄,然后構建了項目,安裝了服務并啟動了服務。然后我的服務運行良好,但沒有記錄。該TopShelf日志出現,但不是我的日志添加到我的Windows服務。更奇怪的是,如果我重新啟動Windows Service,日志記錄開始工作。我已經創建了一個小項目的GitHub 存儲庫,如果你想克隆它并自己重現問題,它會重現這個問題。如何判斷它是否有效該服務應創建兩個文件,一個只顯示“Hello World”,另一個包含所有日志。如果日志文件成功記錄了該行,它將起作用:Why is this line not logged?如果該行沒有出現在log.txt文件中,那么我的問題沒有解決。注意:如果您單擊Visual Studio 中的開始按鈕,則會顯示此行,但我希望它在安裝服務并啟動服務時工作。如果服務啟動,然后重新啟動,它也可以工作,但這似乎更像是一個黑客而不是修復。項目描述這就是我設置服務的方式。我使用.Net Framework 4.6.1創建了一個新的C# 控制臺應用程序并安裝了 3 個NuGet包:<?xml version="1.0" encoding="utf-8"?><packages>  <package id="log4net" version="2.0.8" targetFramework="net461" />  <package id="Topshelf" version="4.0.4" targetFramework="net461" />  <package id="Topshelf.Log4Net" version="4.0.4" targetFramework="net461" /></packages>然后我創建了Windows 服務:using log4net.Config;using System.IO;using Topshelf;using Topshelf.HostConfigurators;using Topshelf.Logging;using Topshelf.ServiceConfigurators;namespace LogIssue{    public class Program    {        public const string Name = "LogIssue";        public static void Main(string[] args)        {            XmlConfigurator.Configure();            HostFactory.Run(ConfigureHost);        }        private static void ConfigureHost(HostConfigurator x)        {            x.UseLog4Net();            x.Service<WindowsService>(ConfigureService);            x.SetServiceName(Name);            x.SetDisplayName(Name);            x.SetDescription(Name);            x.RunAsLocalSystem();            x.StartAutomatically();            x.OnException(ex => HostLogger.Get(Name).Error(ex));        }
查看完整描述

2 回答

  • 2 回答
  • 0 關注
  • 212 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號