騰訊社群開放平臺.NET SDK在Mono下執行
QzoneException:
QConnectSDK.Exceptions.QzoneException: Exception of type 'QConnectSDK.Exceptions.QzoneException' was thrown. at QConnectSDK.Api.RestApi.Execute (RestSharp.RestRequest request) [0x00000] in :0 at QConnectSDK.Api.RestApi.GetAccessToken (System.String oAuthVericode, System.String state) [0x00000] in :0 at QConnectSDK.Context.QzoneContext.GetAccessToken (System.String state) [0x00000] in :0 at QConnectSDK.QOpenClient..ctor (System.String verifierCode, System.String state) [0x00000] in :0 at ASP.qq_auth_auth_aspx.__RenderTree (System.Web.UI.HtmlTextWriter __output, System.Web.UI.Control parameterContainer) [0x00000] in :0
開始懷疑是RestSharp這個庫的相容問題,後來在Mac上執行成功和Jexus的作者宇內的排查,終於在Linux上成功執行騰訊社群開放平臺.NET SDK。
查看了mono的文件知道,地址http://www.mono-project.com/FAQ:_Security,Linux本身在發行的時候是不帶任何證書的,這和windows平臺似乎恰恰相反。不過有工具,允許我們自行安裝證書。
安裝根證書,這由 mozroots 來完成
mozroots --import / ##匯入證書
--ask-remove / ##僅刪除時確認
--machine ##儲存在全域性環境
這個問題可以說是windows平臺和linux平臺的差異造成的。我們的開發和應用多跑在windows平臺上,好處是這個平臺為我們作了很多幕後工作,壞處是我們清楚她做了些什麼,看來後面的移植過程中出現的問題,第一要考慮的就是時不時平臺差異造成的。