2017-07-28 105 views
1

我試圖通過我的代碼調用SAP Hana服務層,但我絆倒了下面的錯誤:那麼任何人都可以幫助我解決這個問題。SAP Hana服務層:無法建立SSL/TLS安全通道的信任關係

錯誤1: AuthenticationException:根據驗證過程,遠程證書無效。

錯誤2: WebException:底層連接已關閉:無法建立SSL/TLS安全通道的信任關係。

錯誤3: HttpRequestException:發送請求時發生錯誤。

約在App更多的細節 - 我創建控制檯應用程序在.NET &其服務器[花服務器爲在服務器本地訪問是在LAN] Linux的&在Windows Server上運行。

一件事 - 我的客戶不打算購買該域名& SSL證書爲SAP HANA業務層,因爲它會通過我的應用程序內部消費。

事情是,當我通過郵遞員測試登錄服務其工作正常&我得到的會話的詳細信息,但同樣的網址不通過我的代碼工作,所以還有什麼我需要做更多的訪問服務?

網址 - https://172.17.100.35:50000/b1s/v1/Login

using (var client = new HttpClient()) 
{ 
var credentials = new { UserName = "admin", Password = "", "" }; 
var json = JsonConvert.SerializeObject(credentials); 

var response = client.PostAsync(url), 
        new StringContent(json, Encoding.UTF8, "application/json")).Result; 

if (response.IsSuccessStatusCode) 
{ 
dynamic content = JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().Result); 

// Access variables from the returned JSON object 
var appHref = content.links.applications.href; 
} 
} 

回答

0

你需要把這個代碼之前postAsync

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; 

這避免了證書的驗證。

0

對於未來的googlers在將請求發送到登錄端點後收到500錯誤響應,請禁用ExpectContinue。

client.DefaultRequestHeaders.ExpectContinue = false; 
0

如果您使用自簽名證書,您必須先接受它們。可以通過將瀏覽器添加到Windows證書來完成! 如果你正在跨域調用,您需要更改b1s.config

vim /usr/sap/SAPBusinessOne/ServiceLayer/conf/b1s.conf 

(...) 
"CorsEnable": true, 
"CorsAllowedOrigins": "*"} 

做在生產模式<注意使用* - < < < -

相關問題