發表文章

IIS SSL憑證匯出成Linux支援的檔案

圖片
前言 Window主機上的SSL憑證是透過certify the web跟ZeroSSL申請同一網域通用的Wirdcard,現有需求需將該憑證匯出給另一台Linux主機用。 解決方式 1.在IIS先將憑證出來,匯出後為.pfx檔案,匯出時需設一組密碼。 2.初次使用OpenSSL,先將路徑設定環境變數。本文使用的是git內建的OpenSSL,C:\Program Files\Git\usr\bin\openssl.exe 3.使用OpenSSL將.pfx的 憑證檔案 匯出 openssl pkcs12 -in server.pfx -nokeys -out server-crt.pem -password "pass:1234" -nodes 4.使用OpenSSL將.pfx的 加密金鑰檔案 匯出 openssl pkcs12 -in server.pfx -nocerts -out private.pem -password "pass:1234" -nodes 5.使用OpenSSL將 加密金鑰檔案 匯出成 已解密 的金鑰檔案 openssl rsa -in "private.pem" -out "PrivateKey.key" 參數 -nokeys  私密金鑰檔 (僅輸出憑證檔案) -nocerts 伺服器憑證檔 (僅輸出金鑰檔案) -nodes  輸出一個沒有密碼保護的私密金鑰檔 -password:"pass: .pfx匯出時的密碼 " 完成後,只需要server-crt.pem及PrivateKey.key,就可以在Liunx上匯入。 其它/參考 https://blog.miniasp.com/post/2019/02/25/Creating-Self-signed-Certificate-using-OpenSSL https://justhodl.blogspot.com/2018/04/tls-ssl-crt-key-to-pem-openssl.html https://wangprince.idv.tw/tech/733 * https://www.mysysadmintips.com/windows/servers/62-export-

Windows 11 - Snagit 2019無法擷圖

圖片
前兩天升上Windows 11後,Snagit 2019無法使用,一按擷圖,應用程式就會Crash。事件檢視器的訊息如下。 解決方式 在官方論壇,找到了解法。將Snagit應用程式,強制使用Nvidia Processor。 其它參考 https://support.techsmith.com/hc/en-us/community/posts/360071673271-Snagit-Editor-2019-Hanging-Crashing-FIX-

關於IIS 503錯誤處理

圖片
前言 工作需求換了台新筆電後,將舊筆電的IIS設定匯進來,執行後出現503錯誤。事件檢視器訊息如下 The Module DLL C:\Windows\system32\inetsrv\aspnetcore.dll failed to load.  The data is the error. 此訊息是由於IIS的Site部份為.Net Core。本以為只要安裝好 .Net Core Hosting Bundle 就OK了,但....還是一樣會發生錯誤。 原因 此錯誤是有歷史痕跡的! 舊筆電一開始裝的是.Net Core 1.1還是2.0....忘了,其AspNetCoreModule的位置是在C:\Windows\system32\inetsrv\aspnetcore.dll。但之後的.Net Core改成AspNetCoreModuleV2,原有的已不在使用,而在我將舊筆電的IIS設定匯進來後,AspNetCoreModule的設定也匯進來到applicationHost.config了。白話說就是IIS的組態有不存在.dll的設定。 解決方式 修改組態C:\Windows\System32\inetsrv\config\applicationHost.config,將AspNetCoreModule模組移除或註解起來。 其他錯誤 在修改完後,一樣出現503錯誤,事件檢視器訊息 The Module DLL C:\Program Files\IIS\Application Request Routing\requestRouter.dll failed to load.  The data is the error. The Module DLL C:\Windows\system32\inetsrv\rewrite.dll failed to load.  The data is the error. 因為有用到Url Rewrite,此錯誤使用Web Platform將相關模組安裝好,就OK了。 其它參考 https://stackoverflow.com/questions/40161982/aspnetcore-dll-failed-to-load

AzureDevOps-還原已刪除的Git 分支

圖片
今天同事要找的相關程式碼,前陣子我以為不會再用到,就把它刪除了。試著要在本機的git下reflog,看可不可以找到分支的commit ID來還原,但...已過了期限(預設保留30天),找不到。 本機找不到,就往上找找,幸好AzureDevOps有提供還原已刪除的方式 還原方式 進入Branches,在搜尋輸入已刪除分支的 完整名稱, 找到後就可以還原回來了。 其它參考 https://docs.microsoft.com/zh-tw/azure/devops/repos/git/restore-deleted-branch?view=azure-devops https://gitbook.tw/chapters/branch/restore-deleted-but-unmerged-branch.html

使用ExeOutput for PHP發信

圖片
目前有一外包程式使用的是php開發,外包商反應我們提供的AWS Smtp資訊無法發信,但我測試使用.net C#可以正常發信。 由於不會寫php,一時間也不知如何驗證,是哪邊出錯? 為釐清是哪邊程式出錯,找了一個php範例來測試,但...不會php,也沒有安裝相關環境可以用,怎麼測? 解決方式 找到了一個軟體可以針對php程式直接編譯成執行檔。沒有安裝php,也會自動幫你下載安裝。 1. 下載連結 2.安裝後,打開應用程式,新增一個專案並選擇進入點的.php,本例為下載php email的範例程式 選擇輸出的檔案類型,本例為主控台應用程式 3.編譯程式 成功後,就會看到輸出的exe ps:.exop為ExeOutput的專案設定檔 其它參考 https://www.exeoutput.com/samples/sendmail-console-app

NSwag Studio -更新Web API文件參考

圖片
前言       寫給同事的操作文,在新增API或增修欄位時,如何更新Client端的程式碼。 How To 1.沒有安裝過NSwagStudio的話,先到此 下載安裝 。 2.Web API網站先執行起來,並打開應用程式,副檔名.nswag 3.更新參考並存檔,如下圖 4.查看xxxxClient.cs,是否已更新 其它參考 https://note.kimx.info/2020/04/nswag-studio-apiclient.html

SQL Server -使用資料層應用程式匯出/匯入

圖片
前言 前陣子將自己寫的一個Side Project的資料庫放在網路上的 免費空間 ,這兩天想要把資料備份下來。網站有提供Export Data,但我試了沒用。使用.bak的方式備份,檔案會備份在免費空間的主機上,無法下載...昏。 解決方式 之前記得同事有提過,資料庫在SSMS使用 bacpac 進行備份/還原。試了一下果然可以,備份的檔案可以直接存在用戶端的電腦上。 匯出 1.匯出資料層應用程式 2.選擇本地位置 下一步確認後,會完整將Schema及資料匯出。 匯入 選擇匯出後的資料層應用程式 指定資料庫名稱及位置 確認後,資料庫匯入成功 參考連結 https://docs.microsoft.com/zh-tw/sql/relational-databases/data-tier-applications/import-a-bacpac-file-to-create-a-new-user-database?view=sql-server-ver15

Jenkins-無法儲存工作設定

圖片
問題 同事回報CI工作發行錯誤,原因為建置參數遺失...。此工作只有在昨天Jenkins更新到2.69後,修改了Pipeline的語法而已,查詢工作設定後,發現原本的參數設定不見了....變成未設定的狀態. 測試其他如trigger build等其他的設定,儲存後也都會不見....昏 除錯過程 本以為是Jenkins 2.69更新的問題,所以就先 回報議題 ,過了一天收到了回覆,開發人員使用相關環境測試,是沒問題的....。 為確定是否為Java runtime或是環境等問題,我重新安裝最新的及舊版Jeknins,測試結果正常 將主機的Jenkins還原到我本機來測試後, 問題一樣存在 .....。 在確定與主機環境一致後,再比對兩邊的檔案後,差異的只有Plugin,所以我先將測試正常的Plugin替換到目前有問題的Jenkins下,果然一測試就正常了....。 ps:此目錄只需要copy .jpi就可以使用了 解決方式 在經由交叉比對、連番測試差異的plugin,終於找到了問題所在,一枚六年前安裝,目前已停止維護的 TFS Plugin 造成的。在Jenkins 更新至2.64之後,此Plugin會影響Jenkins的工作設定。 目前的版控已全部改成git,所以將它移除後,恢復正常。

git 修改歷史訊息

圖片
前言     之前同事有問,如何修改commit的訊息? 當下不會,所以只好使用其他非正統方式處理....。這次換自己有此需求,順便將此技能修成。 如何修改 有2種情況,需使用不同的方式修改。 1.要修改的訊息為最新的一筆commit 使用--amend 修改 git commit --amend -m "third by amend" 修改後,commit 的ID會重新計算一個新的 2.修改歷史記錄的某一筆。 本例:修改紅框的seond2,綠色指標為待會 rebase的 Commit ID git rebase -i 4e1d5be 執行後會跳出Vim 編輯器畫面,將第一行的pick改成reword (修改訊息的命令)    儲存後,關閉會再跳出另一個Vim 編輯器畫面,此時就可以直接修改你要的訊息了,紅框為我本次加入的 再次查看,結果如下 3.修改第一筆commit (init) 第2點的命令無法修改init的commit,只能修改在它之後的commit。解決如下命令,其他動作一樣。 git rebase --onto HEAD HEAD master 其它參考 修改 Commit 紀錄 修改歷史訊息

C# MongoDb基本操作

圖片
前言    公司的資料庫,部份資料表過大,造成查詢效能低落。目前考慮要將較大的資料表及較不重要的Log檔,搬到MongoDB上,來解決效能瓶頸。 安裝 Mongodb Windows 4.4.1 MongoDB Database Tools 資料庫管理工具,用來執行備份、還原。 下載後,將相關exe放到安裝目錄內。 Nuget C# MongoDB Driver  : Install-Package mongocsharpdriver -Version 2.11.4 C# 新增、讀取、更新、刪除 (CRUD) 操作 安裝套件 Install-Package mongocsharpdriver -Version 2.11.4 初始化        private static void Init()         {             string connectionString = "mongodb://localhost"; // MongoDB 連線字串             _mongoClient = new MongoClient(connectionString);// 產生 MongoClient  物件             _mongoDatabase = _mongoClient.GetDatabase("Demo");// 取得  MongoDatabase 物件             _mongoCollectionProduct =  _mongoDatabase.GetCollection<Product>("Product"); // 取得 Collection(可以視為資料表)         } ps:資料庫及Collection可以不用事先建立,寫入時不存在,會自動建立。 新增         private static void Insert()         {             var products = Product.GetTestData();             _mongoCollectionProduct.InsertMany(products);//寫入多筆             var single =