2017-11-22 23 views
2

私はXamarin Cross Platform Applicationを作成しています。ポータブルクラスライブラリを.Net Standard 2.0に置き換えました。。このプロジェクトから、我々は、Webサービスの呼び出しを行っている.Iは、接続要求をしながら は、次のエラーを取得しています(このサービスは、自己署名証明書を使用してホストされている)紺碧のサービス・ファブリック・クラスタ上でホストされている -.Net Standard 2.0でSSL証明書を無視します。

のInnerException {システム.Runtime.InteropServices.COMException (0x80072F0D):このエラーコードに関連付けられたテキストは、 に見つかりませんでした。

証明機関が無効または正しくない

でSystem.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotificationで
(タスク タスク)で

System.Net .Http.HttpHandlerToFilter.d__15.MoveNext() ---例外がスローされた前の場所からのスタックトレースの終了--- でSystem.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()で System.Runtime.CompilerServices.TaskAwaiter .HandleNonSuccessAndDebuggerNotification(Tas ( タスク) System.Net.Http.DiagnosticsHandler.d__2.MoveNext() ---例外がスローされた前の場所からのスタックトレースの終了--- でSystem.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw System.Net.Http.HttpClientHandler.d__111.MoveNext()}のSystem.Exception {System.Runtime.InteropServices.COMException}

でSystem.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスク タスク)で

私は次のコードスニペットを使用する証明書をバイパスするために、一般的に問題を引き起こしている自己署名SSLと思う

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

これはコンソールアプリケーションの.Netフレームワーク4.6.1で動作しますが、このコードは.Net Standard 2.0と.Net Core 2.0アプリケーションでは動作しません。 .Net Standardおよび.Net Coreアプリケーションで証明書をバイパスするために、何か別の処理を行う必要がありますか。 には、以下の

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

私はダブルテイクをしなければなりませんでしたが、根本的な問題は同じではありますが、これは[この質問](https://stackoverflow.com/q/47433527/4137916)の再投稿ではありません。 –

答えて

0

ServicePointManagerは、.NETのコアでは使用できません。このエラーを生成しているサンプルコード領域ですが、System.Net.Httpを使用してHttpClientHandler.ServerCertificateCustomValidationCallbackプロパティを使用してカスタムデリゲートを設定することができるはずです4.1+。

dotnet/corefx GitHubのAdd support for custom validation of server SSL Certificate to HttpClient APISystem.Net.Http 4.1 Contract Revisionsを参照してください。

0

Main acitivty、App delegateのようなプラットフォーム固有のプロジェクトで簡単に記述できます。

** ServicePointManager .ServerCertificateValidationCallback + = (sender、cert、chain、sslPolicyErrors)=> true; **

関連する問題