推薦文章

[廚餘回收] Cloudflare 不時吐 502(Bad Gateway),追查發現是 Nginx 發生了「99: Cannot assign requested address」的錯誤。

前幾天,公司的網站在尖鋒時刻,不時會從 Cloudflare 吐出 502(Bad Gateway),查看 Web 伺服器、DB 伺服器的 CPU、記憶體全都沒有過載的情況,把調查對象轉往 Nginx,從錯誤日誌當中看到了下面這個錯誤訊息:

99: Cannot assign requested address

...繼續閱讀 »
on supershowwei

[EF Core][SQLite]如何使用 EF Core DbContext 以 Microsoft.EntityFrameworkCore.Sqlite 為例

.NET Core 1.0 開始為了跨平台重新改寫了 SQLite,名為 Microsoft.Data.Sqlite,刪除了過時的 DataTable 和 DataAdapter 相關的 DataSet  API,這已經和之前的 System.Data.SQLite 不一樣,但團隊還是盡量讓它們兩者的 API 變化降到最低。這裡有官方的比較說明文件 與System.Data.SQLite的比較-Microsoft.Data.Sqlite | 微軟文檔

...繼續閱讀 »
on yc421206

App Service 實做身份識別存取 KeyVault

  • 86

在透過程式存取 Azure 資源的時候,基於安全性考量,通常是透過在 AAD 內建立應用程式註冊,透過註冊應用程式設定必要的權限來存取 Azure 資源,但是在使用 KeyVault 的時候就是希望有更高的安全性,會將金鑰或秘密存在服務內,但是這時候又會有一組應用程式註冊的 Secret 會需要被放到程式的參數內,那如果也想在開發階段也隱藏這一個金鑰的話就得使用微軟推出的身份識別功能,透過此功能來存取資源,可以在開發階段避免直接將應用程式註冊的 Id 和 Secret 交付給開發人員或是存放在設定檔內,本文就是介紹整個開發階段和部署到 Azure App Service 時候實做存取 Key Vault 內的 Secret。

...繼續閱讀 »
on anyun

使用 Microsoft.Extensions.Hosting.WindowsServices 和 Topshelf.Extensions.Hosting 建立 Windows Service 應用程式

Microsoft.Extensions.Hosting.WindowsServices 實作 IHostLifetime,可以讓我們輕鬆地將 Console 應用程式掛載在 Windows Service,在實作的過程當中,發現控制服務不是那麼的友善。

於是想起了 Topshelf,便找到了 Topshelf.Extensions.Hosting,它除了可以使用原本的 Host 生命週期,DI Container 注入方式,還可以享有 Topshelf 自我管理 Windows Service 的功能。

...繼續閱讀 »
on yc421206

進修課程