【问题标题】:Gmail API Performance and ErrorsGmail API 性能和错误
【发布时间】:2014-09-01 16:19:30
【问题描述】:

我最近开始使用 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: Unable to read data from the transport connection: 一个现有的连接被远程主机强行关闭。 ---> System.Net.Sockets.SocketException:现有连接被远程主机在 System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) 在 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.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar) 处的 System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)

身份验证过程中出错

|System.Net.Http.HttpRequestException:发送请求时出错。 ---> System.Net.WebException:底层连接已关闭:发送时发生意外错误。 ---> System.IO.IOException: Unable to read data from the transport connection: 一个现有的连接被远程主机强行关闭。 ---> System.Net.Sockets.SocketException:现有连接被远程主机在 System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) 在 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.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context) at System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar) --- 内部异常堆栈跟踪结束 - - 在 Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task) 在 Google.Apis.Auth.OAuth2.ServiceAccountCredential.d__b.MoveNext()

保罗·C

【问题讨论】:

  • 我已经做了一些进一步的测试,这仅发生在我的 Azure 托管站点上。从 Amazon AWS 或 localhost 运行时没有问题。我猜这是 Azure 和 Google 之间的通信问题 - 而不是 gmail api 问题。
  • 也许你超出了配额?看看这个:developers.google.com/apps-script/guides/services/…

标签: .net gmail-api


【解决方案1】:

这是 Azure 托管的问题。

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

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

MSFT 没有回复,所以我将在其他地方进行托管。

希望这可以拯救遇到同样问题的人。

【讨论】:

  • 哇,这是非常有用的信息!感谢您的更新!
猜你喜欢
  • 2015-08-28
  • 2018-09-06
  • 2021-01-23
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 2017-05-06
  • 2021-05-18
  • 1970-01-01
相关资源
最近更新 更多