由 上篇 得知 .NET Core 應用程式可以接收 SIGINT/SIGTERM訊號,來完成 graceful shutdown;在處理批次流程中,當應用程式接收到 SIGINT/SIGTERM 訊號後,就要進入狀態的保存,避免服務被強制中斷,導致狀態混亂。預設 Container 預設等待 10 sec,也就是這個時間範圍內就要完成狀態保存,如果超過時間就可以考慮送出 Timeout 參數,延長工作關閉流程。Linux 執行應用程式的時候有區分 shell model 以及 exec mode,若使用不當,會導致接收不到 SIGINT/SIGTERM 訊號,無法 graceful shutdown。
[小菜一碟] 不開放 Swagger 的端點,要怎麼提供 Web API 的規格?
- 210
- ASP.NET Core
在 ASP.NET Core Web API 專案套用了 Swagger 之後,在 Development 環境下預設會有一個 /swagger/index.html
網址來查看 Web API 的規格,但是有些客戶因為公司政策的關係,希望關閉 Swagger 端點,改使用靜態文件,本篇文章有兩個可行的方案提供給大家參考。
使用 Jetbrains Rider Remote Development 開發 .NET Core 應用程式
- 101
- WSL
Jetbrains Rider Remote Development 是 Jetbrains 旗下的產品,可以透過 Jetbrains Toolbox 獨立安裝,也可以直接透過 Jetbrains Rider 使用,這個功能主要就是讓 Windows 的用戶可以在 WSL (Ubuntu) 環境下開發、中斷、除錯。

監視 Docker Container 資源 (cAdvisor + node-exporter + prometheus + grafana)
cAdvisor 是一個開源的容器資源使用情況和效能分析工具,主要由 Google 開發。它專門用於收集、聚合、處理和匯出有關執行中容器的資訊。
Node-Exporter 收集主機層級的各種指標,包括:CPU 使用率、記憶體使用情況、磁碟 I/O 統計、網路流量、檔案系統使用率、系統負載
- Node Exporter:關注整個主機/節點層級的指標
- cAdvisor:專注於容器層級的指標
再搭配上 Prometheus 收集指標,用 Grafana 呈現資訊

出自 https://blog.techbridge.cc/2019/08/26/how-to-use-prometheus-grafana-in-flask-app/
Linq 新功能 (6) CountBy、AggregateBy 與 Index
- 92
- Linq 新功能
跳過 .NET 7 與 .NET 8,因為這兩版沒有新增方法【註1】,因此我們直接來到 .NET9
Linq 新功能 (5) DistinctBy、ExceptBy、IntersectBy 和 UnionBy
- 164
- Linq 新功能
.NET 6 Linq 的新功能來到最終回合。
[日本百大名城攻略] 2024-10-06 31.新發田城
- 20
- 日本百大名城攻略
新發田城又名為菖蒲城,是個位在新潟縣新發田市大手町中的一座平城
由於是在市內且距離車站不遠,是個適合散步休憩的景點。
不過,新發田城在冬天是不開放的,12月底到隔年3月底請一定要避開,以免白跑一趟
在 Windows WSL 安裝 Docker
- 178
- Docker
在 Windows 的環境,要使用 Docker 除了 Docker Desktop 之外,也可以使用 WSL + Docker 來完成環境的搭建

GitHub Copilot Workspace:無需撰寫程式碼也能快速完成功能開發
- 222
隨著 AI 持續的發展跟整合,在程式開發上的協助不僅僅是在寫程式的時候才可以派上用場,現在我們也可以透過 GitHub Copilot Workspace 這個功能在我們動手開發前一直到完成程式碼送出都可以在這個功能完成,而這個功能也在 2024 年底推出公開的技術預覽了,只要有付費的 GitHub Copilot 帳號都可以使用這個功能來協助開發,後面就來介紹這個功能跟簡單的實際操作來展示可以達到怎樣的效果。
GitHub Copilot for Azure:提升 GitHub Copilot 回覆 Azure 相關問題的利器
- 81
GitHub Copilot 除了自己本身模型內含的知識之外,還可以透過安裝 Extension 來加強本身的能力,微軟就有針對 Azure 推出了官方的 GitHub Copilot for Azure 這一個 Extension,我們就可以在 GitHub Copilot 詢問關於 Azure 的問題,後面就來介紹如何安裝跟使用。
[日本百大名城攻略] 2024-08-30 18.鉢形城
- 36
- 日本百大名城攻略
鉢形城是位在埼玉縣大里郡寄居町的百大名城。
由於鉢形城是個接近山城的平山城,所以前往時請把它當作難度較低的山城來攻略,並且避開冬天與雨季會比較適合
[案例分享] [Redis] 如何幫百萬級別資料表做異動排序快取機制
- 302
- 案例分享
DB 數百萬筆的龐大資料如何提供給 Client & 儲存進 Redis cache 層的設計案例分享
Linq 新功能 (4) 自訂預設值, Zip 與 Index struct, Range struct
- 112
- Linq 新功能
.NET 6 在 Linq 上的新增功能真的很多,這一篇聊一些原有方法的多載新增。
[小菜一碟] 使用 OpenVPN 的 CLI(Command-line interface)來連線 Surfshark VPN
- 135
- VPN
Surfshark VPN(沒有業配)在 Windows 的介面中沒有 CLI 可以用,或許有,但我找不到,這樣就變成說我後續要使用 CLI 接一些自動化的工作很麻煩,幸好,像這麼大的 VPN 服務提供商都有支援使用 OpenVPN 來連線。
Linq 新功能 (3) TryGetNonEnumeratedCount
- 80
- Linq 新功能
這篇介紹一個有趣的新功能 – TryGetNonEnumeratedCount
Linq 新功能 (2) Chunk
- 237
- Linq 新功能
這一篇介紹 .NET 6 新增的另一個功能,Chunk
Linq 新功能 (1) MaxBy與MinBy
- 263
- Linq 新功能
趁著最近空閒,來整理一下從 .NET 6 之後 Linq 上的新功能。
把大語言模型變成你想要的樣子-OCR開源殺手鐧MiniCPM-V
- 219
- 人工智慧
PaddleOCR應用硬傷和MiniCPM-V(已改名為MiniCPM-o)Finetune踩坑後的紀錄與分析。
MiniCPM-V 2.6 finetune準確率、Transformer架構與vLLM速度驗證。
reference:https://github.com/PaddlePaddle/PaddleOCR、https://github.com/OpenBMB/MiniCPM-o、https://modelbest.feishu.cn/wiki/LZxLwp4Lzi29vXklYLFchwN5nCf
WPF MenuItem 小傳 (3) -- ContextMenu 開啟前與關閉前的處理
- 35
- MenuItem 小傳
ContextMenu 本身只有 Opened (開啟後) 和 Closed (關閉後) 事件,那要如何處理 【開啟前】與【關閉前】?
用 Cline 撰寫一個 .NET 的 Camera 錄影程式 - 下篇
- 26
- Cline & AOAI
用 Cline 撰寫一個 .NET 的 Camera 錄影程式 - 上篇
- 76
- Cline & AOAI
此為最終結果:

文長,慎入…
ASP.NET Core 使用 Grafana Loki 紀錄應用程式 Log
- 283
- Log
Loki 是由 Grafana Labs 開發的一款日誌系統,除了透過 http 接收 log 之外,還可以用 promtail 收集器接收、分析 log,最終,再透過 Grafana Dashboard 呈現。
下圖出自:How to setup Grafana, Loki and promtail for monitoring docker — Quentin Favrie

將 Cline 串接到 AOAI - 基本操作篇
- 25
- Cline & AOAI
在透過 Cline 串接 AOAI 後,僅透過下 Prompt 沒有寫任何網頁應用的處理,所完成的效果。

將 Cline 串接到 AOAI - 設定 AOAI 篇
- 73
- Cline & AOAI
在 Ubuntu 使用 MySQL client
- 37
- Linux
Ubuntu 安裝 MySQL client 的相關設定
進修課程
- 1
- 2