2017-09-07 4 views
-1

HTTPClientを使用してAPIを呼び出そうとしていますが、タイトルに記載されている例外が発生しています。私は、サービスコールの前に、この行を追加しても問題が解決することを見つけstackoverflowのからの研究のビットの後例外:トランスポート接続からデータを読み取ることができません:既存の接続がリモートホストによって強制的に閉じられました

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 

しかし、人は他のために、このラインの場合の問題をこの行の理由を説明することができませんでしたプログラムの一部。

注:私が接続するサーバーはhttpsを使用しています。

ありがとうございます。

+0

tlsは、接続がhttps(安全)であるために使用される暗号化方式です。元のコードでは、安全な接続を使用していないか、間違った方法(デフォルト)の暗号化を使用していました。 – jdweng

+0

はこのコードを安全に使用していますか?これに代わる方法はありますか? –

+0

実際には、このコードの前にコードが正常に動作していて、突然停止しました。問題を引き起こしたサーバー側の設定があるかもしれないと思っていました。 –

答えて

1

記事MSDNの記事から、HTTPSエンドポイントの呼び出しの前にこのプロパティを設定する必要があることがわかります。

このプロパティは、セキュアハイパーテキスト転送プロトコル(HTTPS)方式を使用して新しい接続 に使用するために、Secure Sockets Layer(SSL)または トランスポート層セキュリティ(TLS)プロトコルのバージョンを選択します。 既存の接続は変更されません。 このプロパティのデフォルト値は であることに注意してください。セキュリティの状況は常に に変更され、既定のプロトコルと保護レベルは、既知の弱点を回避するために時間の経過とともに変更されます( )。個々のマシン構成、および ソフトウェアがインストールされているパッチと適用されているパッチによって、デフォルト値は になります。

関連する問題