騰訊社區開放平台.NET SDK在CentOS下運行發生了如下錯誤:
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平台上,好處是這個平台為我們作了很多幕后工作,壞處是我們清楚她做了些什么,看來后面的移植過程中出現的問題,第一要考慮的就是時不時平台差異造成的。