Darkthread

黑暗執行緒
  • 【茶包射手日記】VS2017 錯誤清單出現 TypeScript 版本相關錯誤卻可編譯

    之前處理過 VS2017 更新導致 TypeScript 出現大量 is not assignable to 錯誤 問題,若暫時不打算改寫 TypeScript 升級 2.4+,確保專案 TypeScript 版本設定維持在舊版即可。但實際使用發現有個困擾:雖然編輯及使用都正常,但 VS2017 的錯誤清單視窗(Error List)冒出大量 is not assignable to 錯誤,一片紅通通很礙眼,其他程式有錯要查訊息如同大海撈針。 研究一陣子不得其解,不經意看到最下方兩則 Warning...
  • IIS HTTP 強制轉 HTTPS 簡易做法

    再遇到老題目:在 IIS 上如何將 HTTP 請求強制導向 HTTPS? 之前試過顯示說明網頁,倒數後透過 JavaScript location.href 轉向 HTTPS 的做法 - 設計賓至如歸的HTTPS強制導向網頁 。 但這有個缺點,如果不需要顯示導向提示,則先 HTTP 200 送回正常網頁再由瀏覽器另外發出請求連上 HTTPS 多耗費一次往返,不如直接回傳 HTTP 301/302 導向有效率,而連上 HTTP 時回應 HTTP 200 還可能會被搜尋引擎誤判為有效網址。 網路建議的解法多是使用...
  • 實戰小技巧 - .NET Exception Message、InnerException 與 ToString()

    前篇文章 提到 try catch 時若只保留 Exception.Message,可能遺失 InnerException 及 StackTrace 錯失破案重要線索。文章迴響顯示這是個值得介紹的實戰技巧,故再補充一篇。 在某些應用情境我們會選擇使用 try … catch 達成特定目的,例如:(註:Exception 的官方翻譯為例外狀況,這裡容我用較口語化的「錯誤」取代) 捕捉可預期錯誤,進行補救並繼續執行程式 例如:發現作業失敗時,Rollback 交易、寫 Log、通知管理員、退回前一步驟請使用者再試一次...
  • 【茶包射手日記】老 Bug 新感受之 ODP.NET 版本問題

    同事報案。某個使用 Managed ODP.NET 的測試網站吐出以下錯誤 Error: The type initializer for 'OracleInternal.Common.ProviderConfig' threw an exception. 同事一度懷疑跟 ODP.NET 版本有關,但依經驗,如為版本問題錯誤訊息會確指出所需元件全名、版號等資訊。為調查問題,我直接在 IIS主機 現場撰寫 Tets.aspx 偵錯 ,測試程式一用到 new Oracel.ManagedDataAccess...
  • TIPS–7-Zip 壓縮時略過特定目錄或檔案

    這是我常遇到的困擾 - 壓縮打包 .NET 專案時,packages、bin、obj 等目錄下的 DLL 檔常讓檔案大小暴增數十倍,而這些檔案可透過 NuGet Restore 或重新編譯產生,基本上不需要保留。如果能在壓縮時略過這些資料夾,預期可省下可觀的體積。 平時我都用免費且開源的 7-Zip 壓縮解壓縮(題外話,如果你己經「免費試用」 試用期只有 40 天 的 WinRAR 了十幾年,可考慮改用 7-Zip),認真查了,7-Zip GUI 在壓縮時雖然有個 Parameters 欄位: 官方說明...
  • 使用 Razor 產生客製化 Email 內容

    多年下來,寫程式發 Email 通知的需求做過 N 回,其中寄給客戶的通知為求美觀常需採用 HTML 格式,而客戶姓名、通知內容等要隨客戶動態改變,嚴格來說也是一種套表。過去我慣用一套自己發明的「特別註記+Replace」做法,例如: var tmpl = "<span>[$Name$]</span> 您好,您的等侯順位為<span>[$SeqNo$]</span>" ; var dict = new Dictionary<...
  • 【笨問題】在 Windows 檔案總管切換音樂/相片資料夾之詳細資料檢視

    在使用 Windows 檔案總管我常遇到以下狀況 – 遇到滿載 MP3 或 JPG 檔的資料夾,選擇「詳細資料」檢視時檔案總管會自動切成音樂或照片專用的檢視,像是這樣: 遇到音樂顯示標題、演出者、專輯名稱,遇到照片可以帶出拍攝日期、尺寸,對一般消費者來說是很貼心的設計,可依據媒體特性方便排序管理。但對想靠檔案日期及大小查問題的茶包射手來說,這些預設欄位沒半個有用。過去我常用的解決方法是在欄位標題按右鍵新增修改日期、大小欄位: 最近學到一招,其實可以要求 Windows 將這個資料夾切回成一般檔案的詳細檢視...
  • 2018 渣打馬

    跑過三屆渣打馬,每次都有精彩回憶。 2014 年 第一次跑渣打馬,初嚐起跑與終點不同的玩法,勉強擠進 SUB5。 2016 年 遇上 44 年難得一見的霸王級寒流,頂著 4 度低溫,整場跑了五次廁所,排隊尿尿排到我都崩潰了,所幸保住 430。 2017 年 絕對是最難忘的一場,是我跑馬生涯的里程碑。不知吃錯什麼藥,拎杯居然跑進許多跑者心中的強者門檻 - SUB4,還一舉突破傳說中的「 陳冠希障礙 」,以 3:55:04 完賽。 不過,近期的體能與去年相去甚遠。記得去年賽前每天晨跑輕踩油門配速就上到...
  • 徹底移除 IIS Response Header 版本資訊

    從 IIS Reponse Header 移除 Server、X-AspNet-Version、X-Powered-By 等版本資訊,可降低因曝露資訊被鎖定攻擊的機率,被視為提高資安防護的手段(效果高低見仁見智,但有些資安掃瞄將此列為弱點,不做也得做)。這已算是老話題,網路上有不少討論與參考文章: mrkt 的程式學習筆記- ASP.NET MVC - 移除特定的 Response Headers 內容 Troy Hunt: Shhh… don’t let your response headers...
  • Hangfire 筆記2 - 執行定期排程

    想用 ASP.NET Hangfire 跑定期排程,有一個前題是「需確保網站永遠處於執行狀態」,先推薦幾篇相關文章: [ASP.NET]使用 Hangfire 來處理非同步的工作 - 亂馬客 - 點部落 [IIS]為什麼應用程式集區設定了 AlwaysRunning 沒有效果呢- - 亂馬客 - 點部落 Making ASP.NET application always running — Hangfire 1.6 documentation 摸索過程我發現更簡單的新做法,實測可行,整理設定步驟如下...
  • Hangfire 筆記1 – 使用 SQLite

    Hangfire 是一套支援在 ASP.NET MVC 站台跑背景作業或排程的好用程式庫,可以將作業丟到背景執行、延遲執行或排定時間定期啟動,並且網頁管理介面、支援失敗重試等功能。如使用資料庫作為任務儲存區,即使網站重啟工作也不會遺失,功能十分強大。Hangfire 開源且可免費用於商業用途,付費版 Hangfire Pro 則多了批次作業中斷接續執行、批次作業流程設計、Redis 支援、效能監控計數器等進階功能。關於 Hangfire 的基本使用 MVP Bruce 有篇淺顯易懂的介紹文: KingKong...
  • 【茶包射手日記】T470p 藍牙失效疑雲

    小黑 T470p 忽然連不上藍牙滑鼠,控制台顯示藍牙已關閉,而啟用停用藍牙的開闗也不見了。 裝置管理員裡的藍牙項目消失,「通用序列匯流排控制器」則冒出一個「未知的 USB 裝置」,研判電腦忽然不認得藍牙裝置搞的鬼。 嘗試更新「未知的 USB 裝置」驅動程式,系統顯示已是最新版本,重新開機亦不見改善。到官網重新下載 藍牙驅動程式 安裝無效,但我注意到一件事 - Intel 8265 Wireless Bluetooth Driver,T470p 藍牙使用的是 Intel 晶片。 改用 Lenovo...
  • 【茶包射手日記】Safari 回上頁時無法停用 Cache

    使用者報案,專案網站使用 Safari 檢視,在切換頁面時殘留載入中訊息,但使用 Chrome/IE 則一切正常。 專案網站有個主目錄網頁,點選切換其他功能網頁前會 $.blockUI 顯示"網頁載入中,請稍侯..."訊息,由於頁面很快會被新網頁取代,故沒必要關閉載入中訊息。而網頁有加 <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv...
  • IIS HTML 檔 Cache 行為觀察

    跟同事討論到:「IIS 在靜態檔案更新時會強制瀏覽器讀取新版本嗎?」 HTTP Header 有不少與 Cache 管理有關,協助瀏覽器用 Cache 減少網路傳輸量,例如:Cache-Control、If-Modified-Since、ETag… 等。要了解這些技術細節,推薦幾篇文章: 循序漸進理解 HTTP Cache 機制 - TechBridge 技術共筆部落格 HTTP 快取 - Web - Google Developers IIS 預設藉由 ETag 及 If-Modified-Since...
  • ASP.NET MVC 回傳 HTTP 400 Bad Request 並附加錯誤訊息

    同事的專案遇到以下需求:依規格實作 WebAPI (考量開發彈性,使用 ASP.NET MVC Controller,未走 ApiController ),規格定義遇到某些狀況需抛回 HTTP 400 Bad Rquest 並以 JSON 格式回傳錯誤訊息。 一開始的寫法如下: public ActionResult BadRequestFail() { Response.SetStatus(HttpStatusCode.BadRequest); return Content( "{ ...
更多文章 下一頁 »
Powered by Community Server (Non-Commercial Edition), by Telligent Systems