The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何在現有 ASP.NET Core 專案加入 Seq 記錄提供者

我經常推薦 Seq 這套記錄伺服器(Log Server),如果要將 ASP.NET Core 的 Log 全部送到 Seq 儲存的話,其實非常簡單,因為官方的 Seq.Extensions.Logging 套件預設就支援 Microsoft.Extensions.Logging 的擴充,提供一個現成的 Logging Provider 讓你很方便的將 Seq 快速加入到 ASP.NET Core 之中。這篇文章我就來說說這個設定的過程。

... 繼續閱讀 ...

簡介 ASP.NET Core 資料保護 (Data Protection)

ASP.NET Core Data Protection 提供了一組加密 API (cryptographic API) 來保護資料安全,其中還自動包含了密鑰管理(key management)與密鑰更換(key rotation)等機制。這套技術主要用來長期取代 .NET Framework 的 ASP.NET 1.x ~ 4.x 中 web.config 定義的 <machineKey> 元素,我研究之後發現這套機制不但簡單好上手,背後的金鑰管理也有一定程度的複雜度,可算是相當不錯的資料保護解決方案。這篇文章我想帶大家快速上手 ASP.NET Core 資料保護機制,並透過一個簡單範例說明他的加解密的用法。

... 繼續閱讀 ...

如何透過 dotnet publish 調整 ASP․NET Core 部署到 IIS 的 Web.config 內容

其實我們在透過 dotnet publish 發行 ASP․NET Core 網站時,預設都會自動發佈一個 web.config 檔案,但是事實上這個檔案跟 Kestrel 完全沒關係,這個檔案主要是給 IIS 看的,當你想部署 ASP․NET Core 到 IIS 的時候,就一定需要這個檔案。今天這篇文章我就來說說,如何在執行 dotnet publish 命令的時候,自動調整 ASP․NET Core 部署到 IIS 的 web.config 內容。

... 繼續閱讀 ...

深入理解 ASP.NET MVC 與 ASP.NET Core MVC 擴充驗證屬性的改變

我在 2013 年的 ASP.NET MVC 開發心得分享 (24):擴充部分類別的建構子 文章中,是我第一次介紹 .NET Framework 年代的 ASP.NET MVC 如何替「實體資料模型」(Entity Data Model) 在有使用 EDMX 自動產生程式碼的情況下如何還能擴充現有的「實體模型類別」(Entity Model Class) 的「驗證屬性」(Validation Attributes)。但直到 ASP.NET Core 的 MVC 開始,作法有點改變了,這篇文章我來記錄一下這些變化的地方。

... 繼續閱讀 ...

認識 ASP.NET Core 7.0 的啟動設定檔 (Launch Profile)

由於 ASP.NET Core 7.0 與 ASP.NET Core 6.0 的專案範本中的啟動設定檔(Launch Profile)有些許不同,而我最近的 ASP.NET Core 課程剛好有學員提到這個問題,所以我就來整理一下相關知識,幫助大家更好的認識這個 Properties\launchSettings.json 檔案。

... 繼續閱讀 ...

設定 .NET 的 HttpClient 使用 HTTP/2 通訊協定發出 HTTP 要求

前幾天把我的部落格網站啟用 HTTP/2 通訊協定版本,結果意外發現我有個用 WebClient 抓取網頁的程式壞掉了。其實我一開始並沒有發現是 HTTP/2 造成的問題,鬼打牆了一段時間才意識到可能是 HTTP 版本差異造成的問題。這篇文章我就來分享幾種不同的 HttpClient 程式寫法,讓你用 HTTP/2 通訊協定版本抓回遠端 Web 伺服器上的網頁。

... 繼續閱讀 ...