- 抓取 appsettings.josn
- SQL Server 連線驗證方式
- Microsoft.Data.SqlClient 安裝
抓取 appsettings.josn
一開始沿用該筆記內容 - [EFCore] 在 Console 專案上安裝設定,使用 Directory.GetCurrentDirectory() 來取得,但當變成 Windows Service 後,回傳值會變成 C:\Windows\system32,完整錯誤訊息如下
The configuration file 'appsettings.json' was not found and is not optional. The expected physical path was 'C:\Windows\system32\appsettings.json'.
最後修正為使用 AppContext.BaseDirectory 才正確取得執行檔案資料夾位置,參考資料
- [食譜好菜] 那麼多種取得執行檔所在位置的方法,在 .NET Core/.NET 應該要用哪一種?
- Worker Service looking for appsettings.json in System32 folder instead of local folder
SQL Server 連線驗證方式
因為是使用 Windows 驗證,在 VS 上測試時是使用 [Windows 登入帳號],但當變成 Windows Service 後,變成為 NT AUTHORITY\SYSTEM,看是要在 SQL Server 內允許帳戶有存取權限或是該使用 SQL 驗證來存取
一開始收到的錯誤訊息如下,完全不知道為什麼要設定 EnableRetryOnFailure
An exception has been raised that is likely due to a transient failure. Consider enabling transient error resiliency by adding 'EnableRetryOnFailure' to the 'UseSqlServer' call.
Windows 服務 => Windows Service 內查詢使用帳號
SQL Server => 安全性 => 報表 => 標準報表 => 登錄失敗
Microsoft.Data.SqlClient 安裝
執行時拋出該錯誤訊息
The type initializer for 'Microsoft.Data.SqlClient.TdsParser' threw an exception.
關鍵字明確,去 nuget 上把 Microsoft.Data.SqlClient 安裝起來就解決
沒有留言:
張貼留言