faq @ Alan Tsai 的學習筆記|An Asp .Net Mvc Web Developer Blog

faq


[tool]用acs-engine在azure透過VMSS建立出kubernetes (k8s) 自動延展的cluster - 下篇

[tool]用acs-engine在azure透過VMSS建立出kubernetes (k8s) 自動延展的cluster - 上篇.jpg
圖片來源:https://pixabay.com/en/key-tag-security-label-symbol-2114047/

在上一篇(用acs-engine在azure透過VMSS建立出kubernetes (k8s) 自動延展的cluster - 上篇)介紹了如何使用acs-engine這個工具產生出了可以在azure上面部署的ARM template,并且成功部署上了Azure。

在這篇將會延續上篇建立出來的vm,并且透過工具對建立出來的k8s cluster做操作,并且看看azure和k8s怎麽的深度結合。

以下用到的指令整合在一起可以從我的github看到:mhat-acs-enginge-azure-k8s/src/02 access-k8s/access-k8s-cluster.ps1

[tool]用acs-engine在azure透過VMSS建立出kubernetes (k8s) 自動延展的cluster - 上篇

[tool]用acs-engine在azure透過VMSS建立出kubernetes (k8s) 自動延展的cluster - 上篇.jpg
圖片來源:https://pixabay.com/en/key-tag-security-label-symbol-2114047/

最近有機會接觸到要用azure的IaaS服務建立出可以自動擴展的kubernetes (以下簡稱k8s) 叢集 (以下簡稱cluster)。

雖然常碰azure的一定會知道,其實azure有提供k8s的PaaS服務(不管是Azure kubernetes Service (AKS) 還是 更高一層的 Azure Container Instance (ACI))但是有些地方是沒有那些服務的(可以期待9月)或者如果想要自己控制完整的vm那要怎麽辦呢?

這篇將會快速介紹一下用acs-engine產生在Azure IaaS上面可以使用的k8s自動延展的cluster,在下一篇在介紹如何操作并且看到azure怎麽和k8s整合。


[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來達到這個轉換。


[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遇到這種問題的時候能夠處理這種問題。


[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檢測的方式確認修改是否有成功。


[.Net]Dll明明有在,為什麼出現找不到DLL錯誤 - 一次搞懂如何處理Dll版本問題(Dll Hell)

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

當系統越來越模組化,大量library開始透過nuget方式組成的時候,開始會遇到一個情況,那就是Dll版本問題(Dll Hell)。

如果對於Dll版本問題沒有一些了解的情況下,常常會遇到明明Dll存在bin下面,但是還是出現找不到的錯誤訊息:

image
System.IO.FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference.

這篇將對於.Net如何處理Dll Hell的問題做一些介紹。


[git]repo、branch和tag取名建議和注意事項 - 怎麼取名比較不會有問題

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

最近在和同事協同開發的時候,發生了一件事情:

由於我們還沒啟用CD(自動部署)但是更新測試機器又不一定是同一個人,為了好管控目前程式碼和目前測試機器上面的版本,我們使用了一個標籤叫做TestServer來記錄。

不過當我同事更新的時候,他使用了testserver作為標籤,結果我這邊發生了雖然local只有一個tagtestserver,但是在remote上面其實有兩個標籤:TestServertestserver

為什麼會發生這個事情呢?如果不處理,未來在看的時候非常混亂,這讓我想起來一直想要寫的一篇文章,為git repo、tag和branch取名的時候應該要注意什麼比較不會有問題,因此兩篇一起寫,算是不好好naming會帶來什麼問題的use case範例。

搜索關鍵字:naming guidance for git repo, tag and branch.


IIS 無法取得font - 錯誤 Failed to decode downloaded font - 了解MIME設定和gitattributes錯誤導致的問題

IIS 無法取得font - 錯誤 Failed to decode downloaded font - 了解MIME設定和gitattributes錯誤導致的問題
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

最近在案子裡面遇到網站有使用到Fontello的元件。網站的靜態切板沒什麼問題但是掛到了iis之後,發現icon的部分都出不來,然後chrome F12的developer工具出現了錯誤訊息:

Failed to decode downloaded font

Failed to decode downloaded font

OTS parsing error: incorrect file size in WOFF header

但是看network裡面fontello的font又有load成功   
但是看network裡面fontello的font又有load成功

這不是我第一次使用這種font相關的套件,為什麼以前沒有發生呢?這篇將會對於發生的原因和解決方式做個總結。

關鍵字:fontello出不來、fontawesome出不來、無法使用font套件

該怎麼開專案的資料夾結構?每個專案應該要有的資料夾結構和檔案

該怎麼開專案的資料夾結構?
圖片來源:https://pixabay.com/en/key-tag-security-label-symbol-2114047/

每當需要建立一個新的專案的時候,最長遇到的問題就是,我的 資料夾應該怎麼開有哪些檔案是必須要存在

對於初學者來說,可能會覺得這有什麼好難的,我就visual studio開起來,然後建立一個專案就可以開始工作了,範例不都是這樣開的嗎?

這個為什麼很重要呢?假設有些必要的檔案沒有建立,除了在開發上會造成負擔(例如缺少git忽略檔案),在之後自己回來看的時候就要花很多時間去找。例如文件在哪裡?專案的變更記錄在哪裡?ci的自動化build script在哪裡?

如果每個專案的結構和內容相近的話,不僅讓找資料更加方便,也能提醒自己有些東西需要補(例如萬惡的文件XD)。

這篇將會介紹每個專案應該要有的資料夾結構和應該要有的檔案,讓未來在建立專案的時候不會忘記。

最後,在實際進入之前,和任何軟體開發一樣,這個有很重的個人喜好(personal preference)在裡面,所以可能和各位習慣不同,由我先拋磚引玉,如果有不同想法和更好建議也歡迎提出來。

關鍵字:專案結構、開專案資料夾、project strcture、特殊檔案



[git]為什麼常出現有修改但是比對不卻顯示不出差異?談談檔案斷行問題和如何達到不同平台正確一致化

用git之後,有時候遇到在檢查狀態的時候明明顯示有修改,但是實際比對的時候發現完全沒有差異

通常來說發生這種情況就是檔案的斷行跑掉了,如果沒有好好解決到時候log會常常出現修改,但是實際上並不是真的修改,未來查找log很辛苦。

在這篇將會對於如何一勞永逸處理掉這個斷行問題做個說明。


[Visual Studio]如何在Visual Studio 2015使用C#7的功能?

隨著Visual Studio 2017發佈之後,C# 7也同時發佈了。

C# 7 和 C# 6一樣,帶來都是比較偏幫助開發的時候寫起來更加簡潔的一些寫法,因此很容易就會想要使用來增加易讀性。

這個時候如果團隊使用的Visual Studio版本不同,容易就會發生編譯問題,以Visual Studio 2015來說,在編譯C# 7 就會出錯,那是否就不能夠用了呢?