我最近开始使用Gmail API而不是IMAP。我正在使用.Net客户端库来调用API。
我随机收到错误
“执行消息的获取请求时发送请求时发生错误
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秒,其他时间则为亚秒。
是否有其他人遇到过这样的问题?
感谢您的帮助,
更新
我正在呼叫相同的消息,它是一个没有附件的小消息。我有一个负载测试仪,要求它100次。错误与关闭底层连接有关。我将尝试一个不同的网络主机,看看这是否是一个因素。以下是完整的错误消息:
消息获取错误
| System.Net.WebException:底层连接已关闭:发送时发生意外错误。 ---> System.IO.IOException:无法从传输连接读取数据:远程主机强制关闭现有连接。 ---> System.Net.Sockets.SocketException:System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)的System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)上的远程主机强制关闭现有连接---结束内部异常堆栈跟踪---位于System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)的System.Net.PooledStream.EndWrite(IAsyncResult asyncResult)上的System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)---内部结束异常堆栈跟踪---位于System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)的System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
身份验证时出错
| System.Net.Http.HttpRequestException:发送请求时发生错误。 ---> System.Net.WebException:基础连接已关闭:发送时发生意外错误。 ---> System.IO.IOException:无法从传输连接读取数据:远程主机强制关闭现有连接。 ---> System.Net.Sockets.SocketException:System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)的System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)上的远程主机强制关闭现有连接---结束内部异常堆栈跟踪---位于System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)的System.Net.PooledStream.EndWrite(IAsyncResult asyncResult)上的System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)---内部结束异步堆栈跟踪---在System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)上的System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult,TransportContext& context)---内部异常堆栈跟踪结束---在Microsoft Google.Apis.Auth.OAuth2.ServiceAccountCredential.d__b.MoveNext()
中的Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(任务任务)中的.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 保罗C答案 0 :(得分:1)
这是Azure托管的问题。
我已经确认,如果我使用Azure网站甚至是虚拟机,调用Google API的错误率为5-10%。
无论是验证,调用Gmail API还是日历API,都会出现同样的问题。
MSFT没有回应,所以我将去其他地方。
希望这能为同样的问题拯救某人。