Gmail API性能和错误

时间:2014-07-11 06:00:49

标签: .net gmail-api

我最近开始使用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

1 个答案:

答案 0 :(得分:1)

这是Azure托管的问题。

我已经确认,如果我使用Azure网站甚至是虚拟机,调用Google API的错误率为5-10%。

无论是验证,调用Gmail API还是日历API,都会出现同样的问题。

MSFT没有回应,所以我将去其他地方。

希望这能为同样的问题拯救某人。