26

C#、.Net 4.5 を使用して、リモート サーバーで HttpWebRequest を介して Web 要求を送信しようとしています。以下のコードを参照してください。いくつかのフォーラムで提案された解決策のほとんどを試しましたが、常に同じエラーが発生します。以下のスタック トレースを参照してください。request.GetReponse() メソッドを呼び出すと、エラーがスローされます。

追加情報、基本的に、リモート サーバーにインストールされている vmware の vCenter コンポーネントの reloadSslCertificate 関数を呼び出そうとしています。現在、エラーは vCenter 5.5 でのみ発生します。バージョン 5.1 以下では問題なく動作します。

        var uri = String.Format("https://{0}/some_url", serverName);
        var request = (HttpWebRequest)WebRequest.Create(uri);
        request.KeepAlive = true;
        request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
        request.Headers.Set(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.8");
        request.Credentials = credential;
        request.CookieContainer = cookieContainer;


        var response = request.GetResponse();

例外: System.Net.WebException: 基になる接続が閉じられました: 送信時に予期しないエラーが発生しました。---> System.IO.IOException: リモート パーティがトランスポート ストリームを閉じたため、認証に失敗しました。System.Net.Security.SslState.StartReadFrame (Byte[] バッファー、Int32 readBytes、AsyncProtocolRequest asyncRequest) で System.Net.Security.SslState.StartReceiveBlob (Byte[] バッファー、AsyncProtocolRequest asyncRequest) で System.Net.Security.SslState. System.Net.Security.SslState.StartSendBlob(Byte[] 着信、Int32 カウント、AsyncProtocolRequest asyncRequest) での CheckCompletionBeforeNextReceive (ProtocolToken メッセージ、AsyncProtocolRequest asyncRequest) System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst、Byte[] バッファー、AsyncProtocolRequest) asyncRequest) System.Net.Security.SslState で。

前もって感謝します。

4

3 に答える 3