1

最近、IMAP ではなく Gmail API を使い始めました。API の呼び出しに .Net クライアント ライブラリを使用しています。

ランダムにエラーを受け取ります

メッセージの取得リクエスト実行時に「リクエストの送信中にエラーが発生しました」

                    UsersResource.MessagesResource.GetRequest gr = gs.Users.Messages.Get(emailAccount, msgId);
                    if (isRaw)
                    {
                        gr.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Raw;
                        Message m = gr.Execute();

私の観察では、これは時々発生するランダムなエラーです。10 個のリクエストを実行できますが、失敗します。毎回同じインフラストラクチャで同じリクエストを実行しています。

また、パフォーマンスがあまり安定していないことにも気付きました。10 秒かかることもあれば、1 秒未満になることもあります。

他の誰かがこのような問題を経験していますか?

ご協力いただきありがとうございます、

アップデート

私は同じメッセージを呼び出していますが、それは添付ファイルのない小さなメッセージです。100回リクエストするロードテスターがあります。エラーは、基礎となる接続のクローズに関係しています。別の Web ホストを試して、それが要因かどうかを確認します。完全なエラー メッセージは次のとおりです。

メッセージ取得時のエラー

|System.Net.WebException: 基になる接続が閉じられました: 送信時に予期しないエラーが発生しました。---> System.IO.IOException: トランスポート接続からデータを読み取ることができません: 既存の接続がリモート ホストによって強制的に閉じられました。---> System.Net.Sockets.SocketException: System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult) で、既存の接続がリモート ホストによって強制的に閉じられました。 --- 内部例外スタック トレースの終了 --- System.Net.TlsStream.EndWrite(IAsyncResult asyncResult) で System.Net.PooledStream.EndWrite(IAsyncResult asyncResult) で System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar) で --- - 内部例外スタック トレースの終了 --- System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) で System.Net.Http。

認証中のエラー

|System.Net.Http.HttpRequestException: 要求の送信中にエラーが発生しました。---> System.Net.WebException: 基になる接続が閉じられました: 送信時に予期しないエラーが発生しました。---> System.IO.IOException: トランスポート接続からデータを読み取ることができません: 既存の接続がリモート ホストによって強制的に閉じられました。---> System.Net.Sockets.SocketException: System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult) で、既存の接続がリモート ホストによって強制的に閉じられました。 --- 内部例外スタック トレースの終了 --- System.Net.TlsStream.EndWrite(IAsyncResult asyncResult) で System.Net.PooledStream.EndWrite(IAsyncResult asyncResult) で System.Net.ConnectStream で。

ポール・C

4

1 に答える 1