2017-07-28 1 views
1

Ich versuche SAP Hana Service Layer über meinen Code aufzurufen, aber ich stolpere über den folgenden Fehler: Also bitte helfen Sie mir dabei.SAP Hana Service Layer: Es konnte keine Vertrauensbeziehung für den sicheren SSL/TLS-Kanal hergestellt werden

Fehler 1st: AuthenticationException: Das Remote-Zertifikat ist gemäß dem Überprüfungsverfahren ungültig.

Fehler 2: WebException: Die zugrunde liegende Verbindung wurde geschlossen: Konnte Vertrauensbeziehung für den sicheren SSL/TLS-Kanal nicht herstellen.

Fehler 3: HttpRequestException: Beim Senden der Anfrage ist ein Fehler aufgetreten.

Einige weitere Details über die App - Ich habe die Konsolenanwendung in .net erstellt & seine auf dem Server ausführen Linux & Windows Server [Hana Server lokal als sowohl den Server zugegriffen wird, im LAN sind].

Eine weitere Sache - Mein Kunde plant nicht den Domain-Namen & SSL-Zertifikat für den SAP Hana Service Layer zu kaufen, da es intern von meiner app verbraucht wird.

Die Sache ist, als ich den Login-Service über Postman getestet funktioniert gut & Ich bekomme die Sitzungsdetails als auch, aber die gleiche URL funktioniert nicht durch meinen Code, so gibt es noch etwas mehr tun müssen, um auf die Bedienung ?

URL - 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; 
} 
} 

Antwort

0

Sie müssen diesen Code setzen, bevor postAsync

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; 

Diese Validierung des Zertifikats vermeiden.

0

Damit zukünftige Googler nach dem Senden Ihrer Anfrage an den Login-Endpunkt eine 500-Fehlerreaktion erhalten, deaktivieren Sie ExpectContinue.

client.DefaultRequestHeaders.ExpectContinue = false; 
0

Wenn Sie selbstsignierte Zertifikate verwenden, müssen Sie diese zuerst akzeptieren. Das kann getan werden, indem Sie es zu Windows-Zertifikaten oder vom Browser hinzufügen! wenn Sie Cross-Domain-Anrufe machen, müssen Sie die b1s.config MODE

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

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

tun Anmerkung Verwendung * in der Produktion < ändern - < < < -

Verwandte Themen