2017年12月13日 星期三

[從.Net工程師的角度來看DevOps 24]免費build私人Repo的CI Service - Visual Studio Team Service介紹

image
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 和 https://blog.xebialabs.com/2016/03/21/essential-devops-terms/

在上一篇([從.Net工程師的角度來看DevOps 23]在AppVeyor執行Build Script - 整合build資訊到github)介紹完了如何用AppVeyor執行我們定義的build script,不過有時候我們有私人的repo也希望做CI,這個時候免費版本的AppVeyor就不夠了。

這邊將會介紹另外一個能夠build私人repo,由Microsoft提供的免費CI服務,Visual Studio Team Service(VSTS)。

這篇先看內建VSTS所提供的方式來建制範例專案,在下篇在改成執行我們的build script。

題外話,假設之前已經有VSTS帳號,想要移動Region到East Asia,可以參考這篇:[VSTS]如何調整Visual Studio Team Service的區域(Region)

[從.Net工程師的角度來看DevOps 23]在AppVeyor執行Build Script - 整合build資訊到github

image
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 和 https://blog.xebialabs.com/2016/03/21/essential-devops-terms/

在上一篇([從.Net工程師的角度來看DevOps 22]免費的CI Server - AppVeyor介紹)了解到了如何把專案關聯到AppVeyor裡面,然後可以很簡單利用AppVeyor裡面內建的一些設定來build專案。

在這篇,我們將完全拋棄AppVeyor的內建機制,改成用我們建立出來的build script來執行。

有自己的build script不止在設定上變得更簡單,local跑的和CI Server跑的會一樣,並且如果要整合到另外一個CI Server也不會有什麼問題。


2017年12月12日 星期二

[從.Net工程師的角度來看DevOps 22]免費的CI Server - AppVeyor介紹

image
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 和 https://blog.xebialabs.com/2016/03/21/essential-devops-terms/

在上一篇([從.Net工程師的角度來看DevOps 21]Build階段的總結和重構 - Build Server介紹)對我們的build script在做了一次重構之後,這篇我們來看看一個佛心的CI Server:Appveyor。

CI Server不是什麼新的概念,一直以來有一些免費的CI Server可以使用,例如Travis CI - 不過多是Linux base的Server。 但是由於Windows版權的問題,.Net沒有什麼免費(至少從Open Source專案角度來看)的CI Server 可以用,直到AppVeyor的出現,和後來的Visual Studio Team Service。

在這篇,將會簡單介紹AppVeyor,並且如何把我們的專案準備好,在下一篇在介紹如何整合AppVeryor執行我們的build script。


2017年12月11日 星期一

[VSTS]如何調整Visual Studio Team Service的區域(Region)

image
圖片來源:https://pixabay.com/en/key-tag-security-label-symbol-2114047/

Visual Studio Team Services (VSTS) 可以簡單理解成為雲端版的Team Foundation Server (TFS),而且微軟很佛心的讓5人以下團隊免費使用。

在建立VSTS的時候,有個選項是VSTS的資料要放在哪個區域(Region)。早期的時候,只有在美國,現在的話在東亞(East Asia)也有辦法建立了。

不過如果是早期建立在美國的VSTS是否能夠移動到East Asia呢?這篇將會介紹如何透過寫VSTS的support ticket來達到這個轉換。


2017年12月10日 星期日

[faq]解決C#呼叫有ssl憑證問題的網站出現遠端憑證是無效的錯誤問題

image
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

有時候需要在C#的程式裡面發出request和內部或者外部的服務溝通,如果內部或者外部的服務只允許https連線,而且的ssl憑證並沒有經過認證(有可能是用self signed certifcate),那麼C#會直接出錯:

image
錯誤訊息範例畫面

system.security.authentication.authenticationexception the remote certificate is invalid according to the validation procedure

System.Net.Http.HttpRequestException: 傳送要求時發生錯誤。 ---> System.Net.WebException: 基礎連接已關閉: 無法為 SSL/TLS 安全通道建立信任關係。
---> System.Security.Authentication.AuthenticationException: 根據驗證程序,遠端憑證是無效的。

一般來說要解決這個問題有兩個做法:

  1. 把self sign的certificate裝到程式的機器上面並且信任那個憑證
  2. 在送出request的時候做一些特殊處理

這篇將會對於第二個做法,調整程式讓發出request遇到這種問題的時候能夠處理這種問題。


2017年12月6日 星期三

[tool]沒有mail server怎麼測試寄送email?快放過你的gmail來看看有那些可以測試用的smtp mail server

image
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

不管什麼系統,只要需要通知使用者基本上都是使用email(電子郵件)方式通知,因此寄送email基本上是大部分系統都會需要的功能。

雖然正式環境一定會有mail server給我們使用,但是當我們在開發階段的時候,有時候需要測試寄送出來的mail內容是不是正確、有沒有跑版等問題,這個時候有一個測試用的mail server變得非常重要。

以前最常見應該就是借用gmail的mail server來測試發信,不過那個設定有些步奏,並且gmail也有做出一些限制,因此放過你的gmail吧,來看看有什麼工具可以讓我們測試email寄送。

關鍵字:測試mail server、測試smtp、mailtrap、smtp4dev、papercut、直接寫道檔案系統

測試機送mail的sample程式在github:dotnet-sendmail-smtp-server-review

2017年11月30日 星期四

[iis]為什麼ssl cipher suite關閉了檢查還是有出現問題 - 如何local檢查ssl和cipher suite

image
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

之前有介紹透過使用IISCrypto來快速設定SSL相關的資安設定。正常來說只要重啟以後禁用的ssl和cipher suite應該就不會出現。

不過如果用一些檢測工具,例如透過Qualys SSL Lab的SSL ServerTest,那麼有可能還是會看到已經禁用的cipher suite

這是為什麼呢?這樣到底如何驗證設定是否有成功?這篇將會介紹如何透過local檢測的方式確認修改是否有成功。