Производительность и ошибки 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.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.EndGetResponse (IAsyncResult asyncResult) в System.Net.Http.HttpClientHandler.GetResponseCallback (IAsyncResult ar)

Ошибка при аутентификации

| System.Net.Http.HttpRequestException: произошла ошибка при отправке запроса. ---> System.Net.WebException: базовое соединение было закрыто: при отправке произошла непредвиденная ошибка. ---> System.IO.IOException: невозможно прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным хостом. ---> 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 и контекст) в System.Net.Http.HttpClientHandler.GetRequestStreamCallback (IAsyncResult ar trace) --- - Конец внутреннего стека исключения - в Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) в Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess (задача задачи) в Google.Apis.Auth.OAuth2.ServiceAccountCredential.d__b.MoveNe

Пол С


person PNC    schedule 11.07.2014    source источник
comment
Я провел дополнительное тестирование, и это происходит только с моего сайта, размещенного в Azure. При запуске из Amazon AWS или локального хоста проблем нет. Я предполагаю, что это проблема связи между Azure и Google, а не проблема gmail api.   -  person PNC    schedule 12.07.2014
comment
может вы превысили квоты? проверьте это: developers.google.com/apps-script/guides/ услуги /   -  person Tal    schedule 13.07.2014


Ответы (1)


Это проблема с хостингом Azure.

Я подтвердил, что если я использую веб-сайт Azure или даже виртуальную машину, частота ошибок при вызове API Google составляет 5–10%.

Такая же проблема возникает при аутентификации, вызове Gmail API или API календаря.

Нет ответа от MSFT, поэтому я собираюсь разместить его в другом месте.

Надеюсь, это спасет кого-нибудь с той же проблемой.

person PNC    schedule 13.07.2014
comment
Вау, это действительно полезная информация! Спасибо за обновления! - person Eric D; 15.07.2014