跟同事討論到高負載 .NET Logging 議題。某程式有巨量 Log 寫入需求,執行幾小時 Log 量可達數 GB,甚至懷疑寫 Log 可能成為效率瓶頸之一,程式目前使用 log4net,考是是否應更換成其他 Log 程式庫?如果要換,有哪些選擇? 早年用過 log4net,複雜的 XML 設定...

介紹一個比較進階的效能議題 - False Sharing,先分享兩篇文章: 多執行緒程式的效能隱形殺手 - False sharing by Jed False-sharing 以及其解法 (以 Golang 為例) by Genchi Lu False Sharing 是一種開發時不易意識到...

兩年前跑過烏來馬,念念不忘美味山豬肉、漂亮獎牌及好看的完賽衣。去年沒留意報名日期,發現時已額滿好扼腕,今年當然不想再錯過,盯緊報名日順利入手。報名時肖想限量的合體獎牌,腦波一弱報了 42+7K 勇士組,還拉了跑馬老搭擋忠孝哥下水。報名是四月的事,當時心想反正還有半年,只要認真練習不過是全馬再多加短短...

這回更換部落格平台,背後我還做了另一項大改變 - 改用 Markdown 寫文章。 為什麼要用 Markdown 隨著 Github/Stackoverflow 大量採用 Markdown 作為技術文件、討論區的撰寫格式,這些年寫 Markdown 已成為開發者參與技術社群的必備技能,甚至許多技術作...

前文提到在 Linux 上將 /var/www 擁有者及群組都設成 www-data,再將我的帳號(jeffrey)也加入 www-data 群組,目的是讓以服務形式執行的 ASP.NET Core 網站可使用 www-data 身分讀寫檔案。而當要部署更新檔案,則使用我的帳號登入,藉著屬於 www...

先前文章已初步驗證 ASP.NET Core 程式可以不經修改直接搬到 Linux 執行,接下來得真的把它配置好才能上戰場。 ASP.NET Core 內建的 Kestrel 伺服器輕巧但功能陽春,實務上需搭配 Reverse Proxy 對外提供服務,在 ASP.NET Core 值得學嗎? 提過...

前言 閒聊 - Web API 是否一定要 RESTful? 一文提到我個人偏好用 ASP.NET MVC 寫 WebAPI,讀者 Mark 留言希望能有簡單範例參考。這篇文章將示範用 ASP.NET MVC 從無到有打造一個簡單 WebAPI 服務,提供給初學 ASP.NET MVC 不知如何下手...

小筆記一則,前幾天升級 Windows 10 1803,隔了兩天要開啟 Hyper-V VM 出現錯誤。 過去有類似經驗,升級 Windows 前如有使用「儲存」功能的休眠 Hyper-V VM,須先「刪除儲存狀態」,視為不正常關機再啟動。 這次狀況不同,VM 啟動失敗,彈出錯誤: Emulate...

OutputCacheAttribute 是改善 ASP.NET MVC 網站效能的利器,只需在 Action 加註 [Output] 並指定 Cache 保留時間,其他什麼都不用做就得到跑一次程式應付數十上百次請求的效能提升,能提升回應速度並降低資源消耗。至於因應不同類型請求快取多份內容,Outp...

因安裝軟體需求,要在 Windows Enterprise 上安裝 .NET 4.7.2,卻得到「這個作業系統不支援 .NET Framework 4.7.2」訊息。 呼叫 WinVer 查了版本,版本為 10.0,組建 10240。 查到這裡我有點疑惑,Windows 10 版號不是 1703...

同事報案,測試網頁上傳檔遇到中文檔名上傳變英文的怪事,仔細檢查後有了驚奇發現。檔案來自 Windows 內建範例圖片(C:\Users\Public\Pictures\Sample Pictures),檔名原本是英文,但檔案總管顯示的卻是中文檔名,因此選取檔案上傳時產生「自己正在上傳中文檔名圖檔」的...

在工作上有些系統選擇將定期執行作業的邏輯寫在 ASP.NET 網站,再設定 SQL 排程 (SQLAgent) 或 Windows 排程器 (Task Scheduler) 呼叫它。這麼做的好處是邏輯完全集中在網站專案,不致分散於網站及主控台程式兩處(雖共用程式庫已可大幅減少重複,但仍比單一網站複雜...

被 VBScript 語系問題咬傷多次,前幾天分享換帳號執行程式產生多餘空白一文後,在臉書專頁與留言區都接到網友回響,雖然晚了十年學會,日後用到的機率也微乎其微,還是寫篇筆記備忘。 先前遇到的狀況是 Windows 語系被設成英文,導致中文字元被解析成問號衍生錯誤。然而,除了依賴作業環境語系正確設定...

介紹最近這兩天學到的好用 DOS 指令。 工作上有些排程我還是習慣靠 DOS 批次檔解決,雖然這年頭 PowerShell 已是 Windows 管理腳本的主流,但批次檔簡單易上手,串接執行檔或 DOS 內建作業,例如:COPY、ROBOCOPY、7Zip...,不花太多腦筋三兩下便搞定。因此批次檔...

同事回報一枚詭異茶包,某上古神獸級的老 VBScript 排程,在更換執行身分後所輸出的固定欄寬文字檔錯誤,中文欄位右側填補空白數不對,多出三個空白。但讓人無法理解的是:程式完全沒動,換了執行身分權限不對還能理解,執行成功但結果多出空白是什麼鬼? 取回 Log 分析並檢視程式碼,推測與字數計算邏輯有...

將運作十年的 ASP.NET WebForm 的部落格翻寫成 ASP.NET Core,我的下一步是挑戰將部落格搬到 Linux 執行,才不辜負 .NET Core 可跨平台的能力。考察過 Linux 作業系統,我選擇了 CentOS,主要考量其以穩定性著稱,企業界接受度高,將來或許有機會靠它再混兩...