網頁

使用PowerShell判斷主機安裝的.NET Framework版本

使用PowerShell判斷主機安裝的.NET Framework版本

目前專案維持舊專案 .NET Framework 與新專案 .NET Core 的關係,而 .NET Framework 專案從 4.5.x、4.6.x、4.7.x、4.8 都有,而伺服器需要安裝至對應版本 .NET Framework,例如,專案使用 .NET Framework 4.7.2,伺服器只安裝 4.7.1 則不行。在維護伺服器時需要確認目前已經安裝的 .NET Framework 版本,微軟官方:「判斷安裝的 .NET Framework 版本」是用 C# 方式去判斷。這在伺服器就是不方便,又不是開發機,我按文件邏輯改為 PowerShell 版本,PowerShell 方法在任何主機都能快速判斷已安裝 .NET Framework 4.5.x ~ 4.8 版本

如何依.NET應用程式建置組態產生對應的Prefix前綴路由

如何依.NET應用程式建置組態產生對應的Prefix前綴路由

在將一個 ASP.NET Web API 應用程式進行容器化(Containerization)發現一個問題,原先的 Web API 部署至 IIS 應用程式之下,我們會區分開發區(Develop)、測試區(Staging)、正式區(Production),而原始的請求因為 IIS 應用程式的關係,路由都會被加上應用程式的前綴(Route Prefix),例如:

  • Org:/api/value
  • Dev:/develop/api/value
  • Stg:/staging/api/value
  • Prd:/production/api/value

如何自訂Windows Container NAT網路IPAM-Subnet設定

如何自訂Windows Container NAT網路IPAM-Subnet設定

在前一篇解決 Symantec Endpoint Protection 與 Docker 相容性問題碰到一個問題,Docker for Windows 預設 NAT 網路無法重設,主要是想統一開發人員的 NAT 網路設定,這樣 IT 單位才方便統一套用防火牆規則。

我測試以下幾種方式:

  1. 在 daemon.json 指定 fixed-cidr
  2. 使用 docker network rm nat 移除,直接顯示「daemon: nat is a pre-defined network and cannot be removed」訊息
  3. 採用 Github #726 步驟,但我在 Windows 10 上執行 Get-NetNat 沒有任何訊息,Get-ContainerNetwork | Remove-ContainerNetwork 更顯示沒有此指令。

基本是都行不通。最後實在沒找到辦法才請開發人員統一自訂一條 NAT 網路。

不過就在不死心的狀態下,又在我個人的 Surface Pro 上又試了一次。

解決Symantec Endpoint Protection與Docker相容性問題

解決 Symantec Endpoint Protection 與 Docker 相容性問題

目前公司是採用 Symantec Endpoint Protection (簡稱 SEP) 方案與 Docker 一直有相容性問題,直到在追一個問題時發現 Running Docker containers in process isolation when Symantec Endpoint Protection is installed 才得以解決。但我碰到第二個問題,Container 啟動之後(例如,起一個 ASP.NET MVC 容器),請求網頁沒有問題了,但網頁如果連線至容器之外的資料庫進行存取時,那麼則會被 Symantec Endpoint Protection 內建的防火牆擋下,在 Symantec Endpoint Protection 進行防火牆設置得以解決。也就是將容器運作的 IP 網段進行排除。

SEP Firewall Traffic Log

製作Windows Container映像檔注意事項

製作Windows Container映像檔注意事項

由於專案需求多變,有時需要自行建置客製化 Windows 基礎映像檔(Base Image)來使用,就在是在微軟官方的基礎映像檔之上去安裝軟體、設定環境等,像之前的文章:WINDOWS CONTAINER之.NET CORE找不到GDIPLUS.DLL解決方案為例,我們就把 ASP.NET Core Runtime 安裝至 Server Core 基礎映像檔,微軟官方應用程式的映像檔除非特別理由,不然通常最終都會以 Nano Server 為基礎映像檔來提供。

如何快速釋放Windows Server Core記憶體!

如何快速釋放Windows Server Core記憶體!

一個有趣的Case。我們需要收集與分析機台日誌,一天資料量(Size)不大,約200 ~ 300MB,但資料量(Folders/Files)很多,目前觀測到每日約有60 ~ 70萬筆,而且還會不斷成長。資料夾與檔案數約1:2,也就是,如果當天資料夾10萬個那就有20萬筆檔案。我們需要定時去主機A把日誌同步至主機B去進行程式分析與處理,因為不是所有檔案都是我們需要的,在複製的過程會進行一些過濾動作,所以選擇下面三套來測試,但發現一個好玩的現像,主機B常常沒有多久就記憶體滿載(Memory 99%~)的情況,目前測試過:

  1. xcopy.exe
  2. robocopy.exe
  3. freefilesync.exe