2021-02-05 09:07 PM 37 16,917
跟同事聊到一個需求,異動 Windows 資料夾權限前希望能保留整個資料夾(含子目錄)的原有權限設定,作為異動前後對照或萬一操作失誤的還原參考。 基本上就是記錄檔案總管資料夾內容的安全性頁籤,將各群組或使用者名稱及其對映的完全控制、修改、讀取和執行... 等權限儲存下來,但要用程式完成: 按慣例,...
2021-02-04 09:16 PM 0 3,660
有個使用 SSH.NET 連線 SFTP 交換檔案的排程,一登入便冒出錯誤 - Channel was closed 並立刻斷線,故意亂給帳號密碼則會出現 Permission denied (password),初步研判帳號密碼沒問題,錯誤另有原因。 爬文查不到明確方向,大致指向連線被伺服器切斷方...
2021-02-03 10:16 PM 7 3,308
這篇聊聊如何防止測試環境專用的特殊程式邏輯在正式環境被誤用? 實務上測試或開發環境與實際環境常存在難以克服的差異,為方便測試,有時我們需要加入一些測試專用的程式碼,例如:資料轉換、省略權限檢查... 等。 最不花腦筋的做法是直接把測試邏輯加進程式碼,上線前再記得拿掉。但老鳥都知道這樣一定有風險,一旦...
2021-02-02 09:57 PM 0 5,248
如果你很早開始寫 .NET Core 程式,有個節省寶貴 SSD 空間的小訣竅 - 移除不必要的 .NET Core SDK。 .NET Core/.NET 5 的 Runtime 或 SDK 採 Side-by-Side 安裝,新舊版會並存,新版會換掉 C:\Program Files\dotne...
2021-02-01 09:29 PM 5 4,050
由前陣子 lock + 共用靜態物件 vs 每次新建物件的效能案例,當新建物件成本不高且方法非 Thread-Safe 時,共用靜態物件加 lock 還不如每次新建物件有效率,該如何決策顯而易見。但如果新建物件的成本很高呢?若建構物件需要耗用大量 CPU 或記憶體,甚至得爭奪有限資源(固定數量的 S...
2021-01-31 09:18 AM 2 22,839
從 Log 或參數拿到成串未分行的 SQL 指令,或是查程式碼遇到複雜的 SQL 指令,會讓它規則化一點方便閱讀,除了手工整理,自動排版工具也是種選擇。 例如以下這段縮排、大小寫無規則的 T-SQL:(我猜有 Coding-Style 潔癖的人會想把作者的頭扭下來) ;WITH SupportCTE...
2021-01-30 08:06 AM 0 5,522
專案裡有個需求,希望當使用者輸入字串為日期或日期時間時自動轉成 DateTime 型別,我想到用 DateTime.TryParse 來做(註:更嚴謹的做法是改用 DateTime.TryParseExact 正向表列所有支援格式,但我選擇借用 TryParse 內建的彈性較省事),目標是要能支援多...
2021-01-28 09:15 PM 5 7,685
遇到老問題,Visual Studio 啟動 IISExpress 跑 ASP.NET Core 時冒出 Failed to register URL "http://localhost:59683/" for site "MyWeb" application...
2021-01-26 08:41 PM 0 6,997
.NET 5 是微軟最新推出的程式開發平台,要在個人電腦上執行用 .NET 5 開發的程式,先安裝 .NET 5 所需要的執行環境(術語叫 SDK 或 Runtime)通常會比較方便,以下將介紹如何在 Windows 安裝 .NET 5 執行環境。 .NET 5 可支援的作業系統如下,基本上除非你還...
2021-01-25 08:40 PM 0 9,454
前幾天聊到我喜歡將小工具程式編譯成單一檔案,免安裝,不必解壓縮 DLL,整個工具就一個 EXE 檔,放到桌面上點兩下就能用,這是最棒的部署方式! 文章裡提到 .NET 5 內建嵌入參照 DLL 功能,且不像 .NET Core 3.1 得將內嵌參照 DLL 寫成實體檔暫存,實現真正的單檔執行。這篇文...
2021-01-24 10:40 AM 1 4,378
前天提到 JScript.NET 跑 Eval() 在多緒執行出錯崩潰的案例,問題根源在當初覺得反覆編譯 JScript 建立組件並建立物件個體會拖累效能,故寫成只建一個靜態物件共用,但因 eval() 並非 Thread-Safe 方法(指被多條執行緒同時執行也不會有問題),於是線上大量使用下有微...
2021-01-23 07:11 AM 2 8,812
最近用 C# 寫了幾支小工具要交給 End-User 桌面執行,為簡化部署程序,將參照 DLL 併入整成單一 EXE 檔是我愛用的做法。 免安裝,不必解壓一堆 EXE、DLL 存到特定資料夾,整個工具就一個 EXE 檔,放到桌面上點兩下便能用,很棒吧! .NET Core 3 支援編譯封裝成單一執行...
2021-01-22 09:21 PM 5 2,435
今天解掉一個糾纏十餘年的老茶包,有治好數十年痼疾的痛快,特 PO 文紀念。 某個古老系統有個進階客製需求,允許設計者在定義作業流程時可以撰寫自訂規則,用預先定義好的資料變數符號(例如:$FieldA、$Now...)配合大於、小於、AND、OR 寫出複雜的判斷條件式,還要能支援括號優先順序。當年的我...
2021-01-21 11:01 PM 33 51,605
如果你跟我一樣,看完資安鬼故事開始神經兮兮兼被害妄想,三不五時懷疑「該不會有人從網路偷連我的個人電腦還渾然不知?」,這篇文章分享的小工具應該能幫助你減輕憂慮。 確認有沒有人從網路登入 Windows 的簡單方法是查詢事件檢視器的安全性事件,事件識別碼 4624 是登入成功記錄、4625 是登入失敗,...
2021-01-20 09:42 PM 0 3,784
分享最近的學會的 PowerShell 技巧兩則。 第一個是如何為 ps1 腳本加上啟用特定功能的開關。我以前比較笨,都是另設字串參數預設為 N,要啟用就傳入 Y,例如:-IncludeSubFolder Y。但 PowerShell 有較優雅的做法 - 沒給參數代表不啟用,附加參數則是啟用,以 G...
2021-01-17 09:46 AM 2 6,730
前幾天的浮點數討論再次突顯 float、double 計算結果常存在微小誤差的特性,甚至會出現以下狀況: float a = 1/3,a 值顯示為 0.3333333,但 a 不等於 0.3333333f,a 也不等於 float.Parse(a.ToString())! 因此,在很需要精準度的場合...