原创 排查 dotNET Core 程序內存暴漲的問題

0. 問題 新版本上線之後,發現內存猛漲,入站流量猛增,不清楚具體原因,部分接口提示 OOM 異常,隨後 Pod 直接崩潰無限重啓。 1. 準備 Pod 已經接入了 NewRelic 和 Graylog,但是仍然沒有辦法找到真正的罪魁禍手,

原创 .NET 5 以後的 HttpClient 超時問題

背景 起因是朋友在使用深信服的 Easy Connect 連接到內網之後,使用 HttpClient 訪問對應內網的 API 站點均返回 System.Net.Sockets.SocketException (10060) 異常。但使用其他

原创 WCF 服務容器化的一些問題

背景 目前項目當中存有 .NET Framework 和 .NET Core 兩種類型的項目,但是都需要進行容器化將其分別部署在 Windows 集羣和 Linux 集羣當中。在 WCF 進行容器化的時候,遇到了以下幾個問題: 某些服務使

原创 [C#]使用 AltCover 獲得代碼覆蓋率 - E2E Test 和 Unit Test

背景 在 CI/CD 流程當中,測試是 CI 中很重要的部分。跟開發人員關係最大的就是單元測試,單元測試編寫完成之後,我們可以使用 IDE 或者 dot cover 等工具獲得單元測試對於業務代碼的覆蓋率。不過我們需要一個獨立的 CLI 工

原创 Bitbucket 使用 SSH 拉取倉庫失敗的問題

問題 在 Bitbucket 使用 Linux 機器上 ssh-keygen 工具生成的公鑰作爲 API KEY,然後在 Jenkins 裏面存儲對應的 SSH 私鑰,最後執行 Job 的時候,Windows Agent 提示 SSH 密鑰

原创 基於 Jenkins + Kubernetes(混合集羣) + Argo CD 的完整 DevOps 流程記錄(1) - 環境部署

一、環境準備 1.1 鏡像倉庫 整套 DevOps 流程使用 Harbor 作爲內部鏡像倉庫,所有構建產物(鏡像)都會推送到 Harbor,以備後續進行項目部署。Harbor 從 2.x 版本開始支持 OCI 標準鏡像,如果是安裝的 1.x

原创 [Abp vNext 源碼分析] - 20. 電子郵件與短信支持

一、簡介 ABP vNext 使用 Volo.Abp.Sms 包和 Volo.Abp.Emailing 包將短信和電子郵件作爲基礎設施進行了抽象,開發人員僅需要在使用的時候注入 ISmsSender 或 IEmailSender 即可實現短

原创 [Abp vNext 源碼分析] - 18. 單元測試

簡介 ABP vNext 框架使用 xUnit 作爲單元測試組件,官方的所有模塊都編寫了大量的 單元/集成測試 確保功能正常。由於 ABP vNext 模塊化系統的原因,開發人員在建立單元測試項目的時候需要集成 Volo.Abp.UnitT

原创 acme.sh 免費泛解析證書生成

環境準備 本篇文章使用的 ACME 客戶端是基於 Docker 容器使用的,所以需要準備 Docker 運行環境。本文使用的是 CentOS 7.x 與 Docker CE - 19.03.13,且已經安裝了 Docker Compose

原创 Harbor 2.1.2 安裝部署

環境 首先需要準備好 Docker + Docker-Compose 環境,Docker 在 CentOS 7.x 的安裝教程請參考 這篇文章,後續文章假設你已經安裝好了上述環境。 安裝 標準安裝 首先從 Harbor 的官方 GitHub

原创 ASP.NET Core 移除已註冊的過濾器

背景 ABP vNext 默認對異常響應進行了處理,現在某個項目需要自定義異常響應結果。 問題 在 ABP vNext 的 MVC 模塊當中,可以看到是通過 AddService(typeof(AbpExceptionFilter)) 添加

原创 [Abp vNext 源碼分析] - 21. 界面與文字的本地化

一、簡介 ABP vNext 提供了全套的本地化字符串支持,具體用法可以參考官方使用文檔。vNext 本身是對 Microsoft 提供的本地化組件進行了實現,通過 JSON 文件提供本地化源,這一點與老 ABP 不太一樣,老 ABP 框架

原创 CefSharp 開發觸屏終端遇到的問題記錄

一、背景 最開始準備使用的 Chromely 做一個終端機項目,本來以爲挺順利的一個事情折騰了兩天半。由於無法直接控制窗體的屬性,最後還是切換到 .NET Framework 4.8 + CefSharp,記錄一下遇到的坑和問題。 二、問題

原创 .NET Core 的 Docker 容器目錄亂碼問題

現象 使用 docker exec -ti <容器名> bash 進入容器,使用 ls 命令列出的數據裏面,中文沒有正常顯示。 原因 就是對應的 Shell 字符集不正確的問題,調整對應的字符集爲 UTF-8 即可。 解決 首先執行

原创 [Abp vNext 源碼分析] - 23. 二進制大對象系統(BLOB)

一、簡介 ABP vNext 在 v 2.9.x 版本當中添加了 BLOB 系統,主要用於存儲大型二進制文件。ABP 抽象了一套通用的 BLOB 體系,開發人員在存儲或讀取二進制文件時,可以忽略具體實現,直接使用 IBlobContaine