2017-11-22 18 views
2

Ich erstelle eine Xamarin Cross Platform-Anwendung darin, ich habe die Portable Class Library durch .Net Standard 2.0 ersetzt. Von diesem Projekt haben wir einen Aufruf an Web-Service auf azur Service Stoff Cluster gehostet machen (mit selbst signiertes Zertifikat dieser Dienst gehostet) .Ich bin die folgende Fehlermeldung erhalten, während eine Verbindungsanfrage machen -Ignorieren SSL-Zertifikat in .Net-Standard 2.0

Innerexception {System .Runtime.InteropServices.COMException (0x80072F0D): Der mit diesem Fehlercode verbundene Text konnte nicht gefunden werden.

Die Zertifizierungsstelle ist ungültig oder falsch

bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Aufgabe Aufgabe) bei System.Net .Http.HttpHandlerToFilter.d__15.MoveNext() --- Ende der Stack-Trace aus früheren Stelle, wo Ausnahme ausgelöst wurde --- bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() bei System.Runtime.CompilerServices.TaskAwaiter .HandleNonSuccessAndDebuggerNotification (Tas k Task) um System.Net.Http.DiagnosticsHandler.d__2.MoveNext() --- Ende des Stack-Trace von früheren Speicherort, wo Ausnahme ausgelöst wurde --- um System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Aufgabe Aufgabe) bei System.Net.Http.HttpClientHandler.d__111.MoveNext()} System.Exception {System.Runtime.InteropServices.COMException}

Ich denke, die selbstsignierte SSL verursacht das Problem, in der Regel um das Zertifikat zu umgehen verwenden wir folgenden Code-Snippet

ServicePointManager.ServiceCertificateValidationCallback += (o, c, ch, er) => true; 

Und es funktioniert für Console Application targeting.Net Framework 4.6.1, aber dieser Code scheint nicht für .Net Standard 2.0 und .Net Core 2.0-Anwendungen zu arbeiten. Müssen wir etwas anderes tun, um Zertifikate in .Net Standard und .Net Core Apps zu umgehen. Im Folgenden finden Sie den Code ein Probenbereich, der diesen Fehler

IHubProxy _hub; 
string url = @"https://www.xyz:com:8080/"; 
var connection = new HubConnection(url); 
_hub = connection.CreateHubProxy("MyHub"); 
connection.Start().Wait(); 
+0

Ich musste eine Doppelaufnahme machen, aber dies ist kein Umtausch von [diese Frage] (https://Stackoverflow.com/q/47433527/4137916), obwohl das zugrunde liegende Problem wahrscheinlich das gleiche ist. –

Antwort

0

Sie können dies einfach in Ihre plattformspezifischen Projekte schreiben wie in Haupttätigkeit, App delegieren.

** ServicePointManager .ServerCertificateValidationCallback + = (Absender, Zertifikat, Kette, sslPolicyErrors) => true; **

Verwandte Themen