Duran 的技術冶煉廠

熱門文章 (Popular Post)

By :

GnuPG (簡稱 GPG),允許作者對資料與通信進行加密與簽章。你可以在本地端使用 GPG 對 Commit 與 Tag 進行簽章,再推送(Push) 至 GitHub 時,GitHub 會以公開金鑰進行驗證,確認變更來源,讓其他人確信這次的變更來源是可以信任的。





Tag : , ,

By :

 雖然自己個 Visual Studio 一直在英文環境,但偶爾需要教學或與展示功能時,需要以中文環境呈現,所以簡單紀錄一下切換語言方式。與 2019 相同,若在 工具 > 選項 > 國際設定 中沒有想要的語言,透過 Visual Studio Installer ( Visual Studio 安裝程式) 安裝想要的語言即可。


Step 1. 點選 工具 > 選項 > 國際設定 (Tools / Option... / International),點選下拉選單,確認是否有想要的語言 (若有,選擇後按確認,重新啟動 Visual Studio 即可)



By :

 因為工作加上遇到疫情關係,常常需要遠端協助客戶檢視問題。但由於許多公司行號對於資安要求嚴謹,多數會限制從外部網路遠端桌面連線進行協助。若您的組織有使用 Microsoft Teams,除了可以開會,也能授予控制權權限讓外部人員進行遠端協助。本篇文章會簡單說明如何透過 Teams 進行遠端協助,若有錯誤或任何建議,請各位前輩不吝提出。





By :

 因為工作關係需要在 Eclipse 上進行開發,也需要做單元測試,有別於 IntelliJ,在 Eclipse 加入 JUnit 的方式有一些些不同,本篇文章簡單紀錄從新專案開始,如何加入 JUnit 套件與第一個 JUnit Test Case (若您已經有專案,可以跳到步驟3),讓有興趣的朋友參考,謝謝。




Tag : , , ,

By :

因為工作關係,需要在 Eclipse 內透過 Gradle 進行套件下載與 Build 的動作。在安裝玩 Eclipse 後,發現並沒有內建此功能,而需要透過 Eclipse Marketplace 進行安裝後,才能使用 Gradle,順手記錄一下整個流程,提供給有興趣的朋友參考。




Tag : , ,

By :

因為工作的關係簡單接觸了一下 Azure Databricks 服務,順手將建立過程與整合過程記錄下來,給有需要或有興趣的朋友參考,本篇文章會先說明如何在 Azure Portal 上建立 Azure Databricks 服務,而下一篇文章會說明如何整合 notebook 至 Azure DevOps Git Repo 。本篇文章若有錯誤或任何建議,請各位先進不吝提出,謝謝。





By :

某次 Teams 會議突然要分享自己電腦的音效,突然找不到慌了手腳,快速記錄一下如何分享自己電腦聲音方法給有需要的朋友參考。 若有錯誤或任何建議,請各位前輩不另提出。(最下方有影片教學)


注意:記得關閉你電腦的通訊軟體,避免音訊傳到其他與會者電腦裡



若你都還沒分享你的畫面,可以點選分享畫面按鈕 (分享開啟分享閘) ,旁邊有一個包含系統音訊,勾選他,點選分享的畫面即可



By :

因為工作的關係,遇到需要透過 Azure DevOps 進行建置的工作,其環境是使用自家的 VM 作為 Agent (self–hosted agent),所以需要在上面安裝相關的套件與設定環境變數。在設定過程中,若在 Agent 伺服器上藉由安裝 Android Studio 達到安裝 Android SDK 與 Gradle 其實不太合理,所以本篇文章會透過 Android Command line tools 來進行套件安裝。若有錯誤或任何建議,請各位前輩不吝提出。




By :

在網站維運上,我們通常會使用 Url ping 或簡易的監控工具確認網站目前是否正常運作,確保重要服務在任何時間發生問題時,在第一時間通知相關人員進行維護,盡可能將停機時間降到最低;擁有測試能力的資訊團隊,甚至能夠確認重要操作交易行為能正常運作。這種隨時監控網站正常運作的方式,我們稱之為可用性測試,也是 IT 團隊在企業內可以呈現的價值指標。




By :

本篇文章將簡單說明 ASP.NET Core 與過去 ASP.NET 網頁應用程式在 檢視詳細錯誤訊息設定 上有什麼不同,並簡單介紹 ASP.NET Core 網頁應用程式佈署至 IIS 上時,如何檢視詳細錯誤訊息。本篇文章若有任何問題或錯誤,請各位前輩不吝提出,謝謝。


注意!! 正確的方式應該是將錯誤訊息以 Log 方式記錄,而不是顯示網頁上,本篇文章意旨說明相關設定與短時程解決方法。



Tag : ,

By :

 過去在開發 Active Directory 相關的輔助程式時,發現某些客戶端的使用者屬性 (Attribute) 有 extensionAttribute1、extensionAttribute2、extensionAttribute3....等延伸屬性,起初以為是手動加上,後來在某些因緣際會下,才發現這個是安裝 Exchange Server 過程中,可能會使用的屬性,您可以透過 Exchange Server 的安裝檔,以指令方式在您的 Active Directory 上增加這些延伸屬性。




By :
Azure DevOps Service/Server 內所建立的工作項目 (Work items)  與 Git 版控歷史紀錄 (如:Branch、Pull Request 與 Commit) 是可以建立雙向連結的,其建立連結的好處包含:
  1. 在工作項目內的 Development 欄位中,顯示與此工作項目有關 Git 操作,快速的了解歷程與程式修改紀錄
  2. 從 Git 的歷史紀錄中,了解 Commit 與哪個工作項目有關
  3. 更新版本時,管理人員能清楚了解那些工作項目 (Bug 修正、新功能) 已經完成

本篇文章將簡單介紹一個小技巧,如何透過 Git Commit Message 與工作項目建立連結,若有錯誤或任何建議,請各位前輩不吝提出




By :

本篇文章記錄舊版本 Team Foundation Server (現稱 Azure DevOps Server) 升級至新版本 Azure DevOps Server 其中一種方式:透過 Team Foundation Server Tools 備份還原功能進行升級。Team Foundation Server Tools 大致上可以分成兩種:

  1. Team Foundation Server Power Tools (需另外安裝,適用於 TFS 2010 使用) 
  2. TFS Database Backup/Restore Tool (不須另外安裝,適用於 TFS 2012 以上版本)

本篇文章將介紹如何透過 Team Foundation Server Power Tools 於 TFS 2010 進行備份,在 TFS 2013 進行還原與升級流程。




By :

因為微軟官方已經將連結移除,這裡提供之前我使用的版本,下載前請先看過最下方免責聲明,若有疑慮請勿下載:


https://distudio.blob.core.windows.net/duran/LPSV2.D1.zip



免責聲明:

本網站對於任何使用或引用本網站網頁資料引致之損失或損害,概不負責。本網站亦有權隨時刪除、暫停或編輯本網站所登載之各項資料,以維護本網站之權益。除法律有強制規定外,在任何情況下,本網站對於 (1) 使用或無法使用本網站之各項服務;(2) 經由本網站取得訊息或進行交易;(3) 第三人在本網站上之陳述或作為;以及 (4) 其他與本網站服務有關之事項所致生之任何直接、間接、附帶、特別、懲罰性或衍生性損害,一概不負賠償責任。


By :

 前言

這是 Azure DevOps Server 2020 安裝筆記,安裝過程中有許多選項,若有些內容用不到則不需要勉強安裝,越多的安裝選項會需要設定更多內容 (如:防火牆、連接埠...等)。一般來說如果您需要安裝離線版,多數是資訊安全限制且有網路限制的環境,若是無法對外連線至特定服務 (如:下載 JRE),則有較多事前準備工作,要有心理準備。請先確認注意事項,滿足條件後再開始進行安裝。




By :

 前言

這是一篇舊版軟體安裝操作紀錄,主要因為有些公司仍使用舊版的 TFS 2012、2013、2015、2017...等。若沒有情境考量,仍建議直接使用最新版本且功能完善 Azure DevOps Server,避免後續升級流程遇到問題造成不必要的時間浪費。本篇文章僅為個人筆記,提供有興趣的朋友參考。

注意:TFS 與 SQL Server 可以安裝在同一台伺服器,若有需求想要分開安裝, TFS 與 SQL Server 則必須加入 Active Directory。




By :

最近因為工作關係,想要在 Azure 上啟用一台 Windows 10 並安裝 Docker Desktop for Windows 進行開發與測試。沒有想太多直接開虛擬機器直接進行,沒想到失敗好幾次,簡單紀錄一下哪一個規格的 Windows 10 VM 可以成功,提供給有興趣的朋友參考。本篇文章若有錯誤或任何建議,請各位前輩不吝提出,謝謝。




By :

Application Insight 也適用於地端伺服器 (on-premises servers),若您有內部伺服器使用 IIS 部署 ASP.NET 程式,則可以安裝 Application Insights Agent 進行監控。使用 Agent 最大的好處就是不需要修改程式碼並且重新部署,只需要透過 PowerShell 進行 線上下載檔案 方式安裝。本篇文章將簡單介紹如何部署 Application Insights Agent 於地端伺服器,若有錯誤或任何建議,請各為前輩不吝提出,謝謝。




By :

ASP.NET MVC 網頁應用程式 (含 ASP.NET Core MVC) 與過去 Web Form 專案架構有所不同,所以在使用 IIS IP 位址與網域限制功能時並沒有這麼的直覺。過去在 ASP 或 Web Form 應用程式,只需要 內容檢視 > 選取該 asp 或 .aspx 檔案 > 切換功能檢視 > IP 位址與網域限制,即可限制該網頁存取。


但 ASP.NET MVC 應用程式 (包含 ASP.NET Core MVC) 呢? 似乎沒有辦法透過 IIS 介面方式進行設定 ?   實際上是可以的,本篇文章皆簡單介紹如何透過 IIS IP 位址與網域限制功能 對 ASP.NET MVC 應用程式中特定網頁限制存取,若有錯誤或任何建議,請各位先進不吝提出。






By :

對於開發人員而言,如何在 Production 發生問題找到 root cause 是一門學問,有別於在開發環境可以透過 Debug 工具找出問題,Production 需要在不影響維運與資訊安全情況線發現問題所在。舉三個例子:


  1. 在開發與測試環境,你可以隨意輸入測試資料以檢測問題所在,但在 Production 環境,你不應該也不被允許進行測試,因為可能會影響正常營運。
  2. 測試環境出錯時,你可以將詳細錯誤訊息顯示在畫面上,但在 Production 環境,詳細的程式訊息很可能變成有心人攻擊的目標。
  3. 開發過程中,程式邏輯錯誤發生在你撰寫程式、執行程式時,但在 Production 環境,錯誤可能發生在下班時間。 


不知道如何在 Production 發現效能問題?  那你一定不知道 APM


By :

 因為 Markdown 容易撰寫的特性,除了部落格,越來越多文件透過 markdown 撰寫 (副檔名 .md),但仍有許多客戶因為不熟悉 Markdown,手邊一時之間也沒有工具可以瀏覽,希望能使用既有的 word 、pdf 格式觀看文件,這時候就遇到格式轉換問題。 今天要介紹這一套萬用文件轉換工具 Pandoc,除了能達到 Markdown 轉換成 docx,也支援相當多輸出、輸入格式,相當方便。






By :

 因為工作關係,遇到有個 App Services 需要從 Azure Key Vault 上取得連線字串與秘密 (Secrets) 需求。實作的方式相當多種,這次是以角色為基礎的存取控制 (Role-Based-Access-Control) 方式來存取 Azure Key Vault,達到可以不需要儲存任何 秘密資訊 web.config 、 appsetting.json 寫死程式裡,只有該授權的角色可以取得秘密資訊的效果。本篇文章若有錯誤或任何建議,請各位前輩不吝提出。




By :
在 Visual Studio 2017/2019 後的版本,增加 Performance Profiler (效能分析器) 功能,讓您可以在開發階段確認程式效能,避免程式上版至正式環境後才發現效能佳的情況發生。效能分析器可以收集的指標相當多,包含 
  1. .NET Async (.NET 非同步)
  2. NET Counters (.NET 計數器)
  3. NET Object Allocation Tracking (.NET 物件位置追蹤) 
  4. CPU Usage (CPU 使用量) 
  5. Database (資料庫) 
  6. Events Viewer (事件檢視器) 
  7. Memory Usage  (記憶體使用)
  8. Application Timeline (應用程式時間軸)
  9. 與 Instrumentation (檢測設備)






By :

 因為工作的關係常常需要搭乘高鐵,累積了不少的點數,這些點數可以用來兌換 車票 與 商品 (詳細兌換內容可以參考 高鐵會員TGO高鐵會員TGO點數 365)。在累積紅利點數前,記得先申請會員,在購買車票、回數票 與 月票時輸入會員編號即可累積。 整體算起來回饋雖然不多 (約等同票價 9 折),但常常出差的朋友,可以考慮累積點數來兌換車票、商品過過癮。


想要累積點數,記得先加入會員


Tag : , ,

By :

 終於到 如何為 ASP.NET Core 與相依服務建立執行狀態檢查 系列文章最後一篇:自訂 Health Checks 監控 Shared folder 狀態。 若讀者有閱讀原始碼: AspNetCore.Diagnostics.HealthChecks(GitHub) 或微軟文件:ASP.NET Core 中的健康狀態檢查,應該會發現 HealthChecks 提供非常多的套件讓你監控多種服務運作狀態。但偶有些想要監控的服務沒有套件支援,那該怎麼辦呢 ? 在這一篇文章我們會給簡單的範例,說明如何自訂方法來監控分享資料夾 (Shared folder) 是否可用。


本篇文章範例位置:HealthCheckDemo ,若覺得講解內容過於陌生,建議從第一篇開始閱讀




By :
ASP.NET Core Health Check 也能與 Azure DevOps Release 進行整合,於佈署前確認相關服務是否正常。若相依服務有運作失敗的情況,會不允許進行佈署,藉此可以先排除有問題的服務,再進行上版,降低問題複雜度。 


注意:因應佈署策略不同,可能會進行停機佈署,須注意不要將正常停機程序,因為Health Check變成阻礙佈署的絆腳石





By :
系統維運內對於網站狀態監控是不可或缺的,雖然建立了 heartbeat 與 status 提供監控系統做即時監控,但沒有及時的處置,仍會出現服務中斷的時期,進而可能損及企業利益 (如:影響交易)。本篇文章透過 Azure Load Balancer (負載平衡) 與 ASP.NET Core HealthChecks 建構相依服務監控與即時切換機制。本篇文章若有錯誤或任何建議,請各位先進不吝提出。


註: Azure Application Gateway 與 ASP.NET Core HealthChecks 也能進行相依服務監控





By :

透過 HealthChecks在監控各種服務時,您能為每個服務加上標籤 (Tags),後續自訂 Health Check Response 時即可透過這些標籤進行過濾動作,只取得/排除特定標籤服務運作資料。當您遇到下列者幾種情境,HealthChecks 的 Tags 可能會幫上不少忙:

  1. 管理人員/監控軟體 會將服務做分類,會比較方便進行監控與釐清問題,像是以網站/資料庫/儲存體分類
  2. 依據權限分類,DBA 只能看見目前 資料庫 運作情況,而維運人員可以看見所有服務運作情況



- Copyright © Duran Hsieh @ Duran 的技術冶煉廠 - Date A Live - Powered by Blogger - Designed by Johanes Djogan -