.NET 組件 Determinism 實驗
前一篇文章我學到一個 .NET 組件編譯名詞 - Determinism。是指 .NET 編譯組件時停用加入 Timestamp 及隨機產生的 GUID 的做法,改以原始碼內容、工作路徑... 等條件為依據,確保相同程式碼在相同環境編譯出來的組件二進位內容完全一致,這有助於識別組件是否來自可信任來源... Read More
View Article.NET 靜態屬性的執行時機與設計
說來也算 .NET 的笨問題,但我第一時間竟有些迷惑,做個實驗強化信念。 疑問是下圖中的 Prop1、Prop2 是否每次取用都會重新執行,傳回不同結果? 完整程式如下: using System; using System.Collections.Generic; using System.Di... Read More
View ArticleWindows 排程錯誤 2147942667
同事報案,某支 DOS Batch 排程無法執行,出現錯誤代碼 2147942667: Task Scheduler failed to launch action "C:\Windows\SYSTEM32\cmd.exe" in instance "" of... Read More
View ArticlePowerShell FAQ - 傳入 Callback 函式參數
最近常在寫自動化及半自動化工作腳本,愈發覺得 PowerShell 好用,尤其能無縫整合 .NET 程式庫這點讓它威力無極限。但也開始學到一些實用但我之前沒學過的用法,會在 PowerShell FAQ 系列陸續整理分享。 【問題】PowerShell Function 如何接收外部函式作為輸入參數... Read More
View ArticlePowerShell FAQ - 函式多參數寫法陷阱
PowerShell 可以無縫整合 .NET 程式,威力無窮。但這也導致很多時候我搞不清楚這裡可以直接用 C# 寫法,還是該照 PowerShell 的規矩來? 新手上路階段,我最常踩到的坑就是多參數 PowerShell 函式的寫法。例如下面這段程式,大家猜猜輸出的結果是什麼? Hell? fun... Read More
View Article資安宣導 - 當心 ASP.NET DLL 外流風險
學到一則有點驚悚的資安知識 - ASP.NET DLL 有可能因為管理操作不當,被人從 IIS 下載外流! 我們都知道 DLL 放在 ASP.NET bin 目錄時被視為程式,跟 App_Data 一樣具有特殊性,不能透過 httq://web-server/bin/Blah.dll 方式用瀏覽器下... Read More
View ArticlePowerShell 練習 - 用 PowerShell 設定 Windows 排程跑 PowerShell
計劃把原本的手工部署與設定操作逐步轉成 PowerShell Script。這樣做有幾個好處: 作業標準化,避免人為失誤 寫成腳本,不管誰來操作結果都一致,不會無人交接手藝失傳,也排除腦殘眼拙手滑出錯的風險, 大量部署或需重複執行時可節省可觀時間 例如要部署上百台機器的場合。 可設定排程自動化部署... Read More
View ArticlePowerShell FAQ - 側錄腳本顯示內容
寫 PowerShell Script 時,針對較複雜或步驟較多的作業,我會在執行過程加上 Write-Host 或 Write-Output 顯示一些資訊,一方面是回報進度可避免操作者茫然焦慮,另一方面,若發生錯誤,這些線索是判斷問題點的重要依據。 PowerShell 新手的疑問是: Write... Read More
View Article.NET 中文字串排序(筆劃、注音)
今天遇到的小問題,如下: 不長不短的人員姓名清單,想用 LINQ OrderBy 排序方便使用者尋找,排序結果有點怪,看不出依據為何。 加上 UT8 編碼後就清楚了,原來是依照 UTF8 編碼結果 byte[] 排列的: 爬文找到自己 9 年前的文章,才驚然想起,.NET 的字串排序可以靠 Cu... Read More
View ArticlePowerShell 筆記 - 陣列
寫了一陣子 PowerShell,發覺自己跟它的陣列很不熟,老想著用 .NET LINQ 思維解題,有點吃力不討好。其實,PowerShell 陣列語法比 C# 靈活(例如: 索引可以是負數、用 .. 表示區間,+ 表示相對位置)、ForEach()、Where() 也有類似 LINQ 的功能,靠 ... Read More
View ArticlePowerShell FAQ - PowerShell 裡可以寫 .NET LINQ 嗎?
大家都知道,我寫 .NET 程式早已「無 LINQ 不歡」,上癮程度直逼「無 LINQ 吾寧死」 (LINQ or Die)(延伸閱讀:好 LINQ,不用嗎?)。這幾個月切到 PoewrShell 跑道,仗著它能無縫整合 .NET,遇到複雜一點的演算便想掏出 LINQ 解決問題。 但 LINQ 基於... Read More
View Article快速產生資料夾樹狀結構
偶爾我會想用樹狀圖表達資料夾跟檔案結構,像是要說明 MVC 網站的目錄結構,有 bin,其中有 .dll、App_Data 下有 data.json、Views 下有 Home,裡面有 Index.cshtml。就算用檔案總管抓圖,一次只能展開一個資料夾: 今天意外發現好方法,有個古老的 DOS ... Read More
View Article【水電工日記】除濕機面板顯示 Er 無法使用
岳父家去年換過馬達的老爺除濕機,幾天前休克無法操作,面板顯示 Er 錯誤碼加人體舒適燈亮: 爬文找到一堆網友經驗分享,得知這是銀髮機(咦?)常見症狀,多是「除霜感知器」老化故障阻值下降,偵測模組判定異常停機。 去年才剛拆機換過馬達(還特別買了長十字起子,又派上用場),熟門熟路拆開外殼,找到插在機板... Read More
View Article【茶包射手日記】無法載入檔案或組件 netstandard, version=2.0.0.0 錯誤
同事報案,某 Visual Studio 套件噴出錯,同一套件在其他幾位同事的電腦則運作正常: 未處理的例外狀況: System.IO.FileNotFoundException: 無法載入檔案或組件 'netstandard, Version=2.0.0.0, Culture=neutra... Read More
View ArticlePowerShell FAQ - 函數傳回集合物件注意事項
最近依舊是寫 PowerShell 多過 C# (雖然在 PowerShell 裡卯起來用 .NET 元件),開始進入見山不是山的階段,程式寫得更多之後,踩到一些奇怪特性,會覺得自己並不懂 PowerShell,哈! 下面這個範例是一個讓我吶喊「花惹發」的行為。我在函式裡建立 System.Data... Read More
View ArticlePowerShell 練習 - 平行作業
PowerShell 執行環境以單執行緒為主,優點是程式邏輯直覺、簡單,但遇上呼叫遠端服務的大量批次操作,性急如王藍田的我,自然無法忍受一堆作業乾等單一窗口消化,這種情境就是要開多執行緒萬箭齊發才爽多線並行才合理! 寫 C# 多執行緒程式我已駕輕就熟,有 Parallel.For、ThreadPoo... Read More
View ArticlePowerShell 雜記 - Add-Type 載入型別錯誤偵錯
PowerShell 使用 Add-Type 參照自製 .NET 程式庫時發生無法載入錯誤。 Add-Type : Unable to load one or more of the requested types. Retrieve the LoaderExceptions property f... Read More
View Article【茶包射手日記】ODP.NET 0x8007005 錯誤經驗又一則
與 Unmanged ODP.NET 纏鬥多年,自以為看遍各種球路,今天再遇上沒見過的變種新球路 - 四縫線變速深卡球,經驗值再加一。 同事將程式部署到測試環境,網站所引用的程式庫參照了 ODP.NET 版,噴出Unable to load DLL 'OraOps12.dll': Access is... Read More
View Articlenginx-certbot Docker 升級小記
我的部落格網站是在 Linux 上跑 nginx-certbot Docker 一次搞定 Nginx 跟 Let's Encrypt 網站憑證自動更新。 幾個月前接到 Let's Encrypt 通知,舊版 ACMEv1 協定已於 2019 年 11 月停止接受新帳號註冊,2020 年 6 月停止新... Read More
View Article告別 wdproj,Web Site Project 編譯的現代做法
工作上還有些用 wdproj 的專案,由於 Visual Studio 從 2012 起已不再支援 wdproj,雖然可以透過 MSBuild 編譯,但它在 Solution 會呈現無法載入狀態,不時提醒著「別人都已上太空,我還在殺豬公」,有股淡淡違和感。 VS2012+ 雖然不支援 .wdproj... Read More
View Article