基本上,在使用.NET版本的Email Migration v2 Google API时,我们的应用程序每秒向单个Google Apps邮箱/用户发送过多请求;每秒大于1个请求。正在返回GoogleApiException,这很好,并且是预期的,但是错误消息的正文指出服务不可用(503)错误已经发生,但是" HttpStatusCode"同一个GoogleApiException实例的属性等于Gone(410)的Http状态代码,我将在下面包含一个代码片段和一些日志输出。此时,请参阅底部的问题部分或继续阅读以获得更好的细节。
哪些步骤会重现此问题?
创建执行以下操作的流程/应用程序:
执行以下操作:
一旦错误开始滚动,关闭你的应用程序..除了测试应用程序异常处理之外,不需要锤击糟糕的Google服务器..
预期产量是多少?你怎么看?
使用以下类型的实例:Google.GoogleApiException
人们希望看到实例的HttpStatusCode属性等同于System.Net.HttpStatusCode.ServiceUnavailable而不是System.Net.HttpStatusCode.Gone
您使用的是哪个版本的产品?
Google.Apis.Admin.Email_Migration_v2(1.8.1.20)
您的操作系统是什么?
Windows Server 2008 R2 Enterprise(SP1)
您的IDE是什么?
Visual Studio 2013 Premium
什么是.NET框架版本?
4.0.30319
请在下面提供任何其他信息。
以下是为上传目的而调用的方法的代码段:
UploadStatus TryUpload(MailResource.InsertMediaUpload insertMediaUpload)
{
try
{
IUploadProgress uploadProgress = insertMediaUpload.UploadAsync(_cancellationToken).Result; // Task.Result locks this thread until completed.
if (uploadProgress != null && uploadProgress.Exception != null)
{
// Display additional information on any of the various exceptions that can be returned by the upload call.
HandleUploadProgressException(uploadProgress);
}
return uploadProgress != null ? uploadProgress.Status : UploadStatus.Failed;
以下是显示异常输出的方法的代码段。
void HandleUploadProgressException(IUploadProgress uploadProgress)
{
if (uploadProgress.Exception is GoogleApiException)
{
GoogleApiException gApiEx = uploadProgress.Exception as GoogleApiException;
throw new vsEventException(vsMapEvent.MapHttpError(gApiEx.HttpStatusCode, vsEventMessages.Id.errGmailUnidentifiableGoogleApiException),
String.Format("GoogleApiException handled in GmailMessenger.HandleUploadProgressException. HttpStatusCode: {0}", gApiEx.HttpStatusCode),
gApiEx);
}
以下是由HandleUploadProgressException方法处理的GoogleApiException的释义输出:(注意使用自定义日志记录类; 输出到DebugView)
**背景信息**
尝试将项目写入Gmail时出错......
**活动详情**
VS-EventID:30003(errGmailTryUpload)处理GoogleApiException GmailMessenger.HandleUploadProgressException。 HttpStatusCode:Gone
**内部异常详情**
服务管理员抛出异常:Google.GoogleApiException: Google.Apis.Requests.RequestError
服务不可用。请再试一次[503]
错误[消息[服务不可用。请再试一次]位置[ - ] 原因[backendError]域[全局]]
在 Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)
在 Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(任务 任务)
在 Google.Apis.Upload.ResumableUpload`1.d__e.MoveNext()
问题:
我很感激所回复的任何回复,我知道这些问题很难解决。