該賞金過期3天。此問題的答案有資格獲得 150聲望獎勵。 CodeMan03想提請大家注意這個問題:
評論中的答案沒有解釋如何為 WCF Webservice 初始化啟動事件
我是 c# 的新手,我正在嘗試在 WCF 應用程式中使用 serilog。此 WCF 應用程式托管在 IIS 6.0 上。
我只需要在服務初始化時創建一次記錄器。但是 WCF 似乎沒有建構式。如何僅在下面創建記錄器并使其可用于應用程式的其余部分。任何代碼示例將不勝感激。
ILogger logger = new LoggerConfiguration()
.ReadAppSettings()
.CreateLogger();
Log.Logger = logger;
我想過在 App_Code 檔案夾中使用 AppInitialize 但我似乎無法讓程式觸發 AppInitialize 方法。
public class InitializeApp
{
public static void AppInitialize()
{
ILogger logger = new LoggerConfiguration()
.ReadAppSettings()
.CreateLogger();
Log.Logger = logger;
}
}
當我在 Visual Studio 2019 AppInitialize 中運行該專案時,從未被擊中。
uj5u.com熱心網友回復:
首先,您可以通過一些支持 WCF 服務的依賴注入庫使用 WCF 服務進行建構式
您可以使用AutoFac.WCF然后您可以通過Autofac注冊 ILogger 的型別
builder.Register<ILogger>((c, p) =>
{
return new LoggerConfiguration()
.ReadAppSettings()
.CreateLogger();
}).SingleInstance();
二、關于應用的“InitializeApp”。有幾種方法可以做到這一點。
- 添加Global.asax檔案,然后就可以在Application_Start 中撰寫代碼
- 使用Owin Middleware撰寫自己的管道。您可以在 Startup.cs 中撰寫代碼
- 使用WebActivator,你可以撰寫PreApplicationStartMethod和PostApplicationStartMethod(Global.asax 的擴展)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/385132.html
