2016-12-21 4 views
0

SSLハンドシェイクの接続と開始の間に一時停止があると、リモートサーバーが接続を終了するため、HResult = 0x800704C9でSystem.Exceptionが発生します。StreamSocket.UpgradeToSslAsyncで0x800704C9エラーが認識される

await socket.UpgradeToSslAsync(SocketProtectionLevel.Tls12, socket.Information.RemoteHostName); 

Windows.Networking.Sockets.SocketError.GetStatus(e.HResult)は0x800704C9コードの不明与えます。ただし、エラールックアップツールはこのコードを認識し、0x04C9/0x800704C9コードが "リモートコンピュータがネットワーク接続を拒否しました"に対応していることを示します。エラー。

ただし、CONNECTION REFUSEDには独自のコード0x274Dがあります(「ターゲットマシンが積極的に拒否したため接続できませんでした」)。 Windowsには2つのエラーコードがあり、そのうちの1つだけがSocketErrorクラスによって認識されます。

0x04C9と0x274Dのエラーの違いは何ですか?SocketError.GetStatusにはバグがありますので、これらのコードの1つのみを理解していますか?

私のコードは、発生した例外が一般的なものかネットワーク関連のものかを判断する他の方法がないため、SocketError.GetStatus!= SocketErrorStatus.Unknownに大きく依存しています(例外はThrowされるすべての例外はIOExceptionではなくSystem.Exceptionクラスです)。何かのような)。私はSocketError.GetStatusによって認識されているものを他のネットワーク関連のエラーが1日に発生することができない心配だ

..

答えて

0

HRESULTエラー:0x8007274d

Winsockエラー:WSAECONNREFUSED(10061)

ターゲットコンピュータが積極的に拒否したため、接続できませんでした。 0x800704c9

システムエラーコード:ERROR_CONNECTION_REFUSED(1225)

これは通常、外部ホスト-、

HRESULTエラーを実行している無サーバアプリケーションを有するものであるにアクティブでないサービスに接続しようとした結果

これは、リモートコンピュータがネットワーク接続を拒否したことを意味します。Windows Sockets Error Codesのいずれでもないので、Windows.Networking.Sockets.SocketError.GetStatus(e.HResult)は0x800704C9コードが不明です。

+0

申し訳ありませんが、わかりませんでした。これらの2つのタイプの「拒否」の違いや、なぜSocketError.GetStatusによってサポートされているのか理解できませんでした。 – Alex

+0

@ Alex'0x800704C9'エラーはソケット操作によって発生していません。 –

+0

"リモートコンピュータはネットワーク接続を拒否しました"というのはネットワーク操作のようですが、OutOfMemoryException、NullReferenceExceptionなどのようなものではありません。ネットワークの問題とは完全に関係なく、別の方法で処理する必要があります私のコードで処理されます)。 – Alex

関連する問題