选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

重试和超时 - 适用于 .NET 的 SDK (版本 3)

的版本 4 (V4) 适用于 .NET 的 SDK 正在预览中!要在预览版中查看有关此新版本的信息,请参阅 适用于 .NET 的 AWS SDK (版本 4 预览版)开发者指南

请注意,SDK 的 V4 处于预览版,因此其内容可能会发生变化。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

的版本 4 (V4) 适用于 .NET 的 SDK 正在预览中!要在预览版中查看有关此新版本的信息,请参阅 适用于 .NET 的 AWS SDK (版本 4 预览版)开发者指南

请注意,SDK 的 V4 处于预览版,因此其内容可能会发生变化。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

重试和超时

适用于 .NET 的 AWS SDK 允许您为向 AWS 服务发出的 HTTP 请求配置重试次数和超时值。如果重试和超时的默认值不适用于您的应用程序,您可以针对具体要求调整这些值,但请务必了解这样做将对应用程序的行为带来什么影响。

在确定重试和超时值时,请考虑以下因素:

  • 当网络连接下降或 AWS 服务无法访问时, 适用于 .NET 的 AWS SDK 和您的应用程序应如何响应? 您是希望调用快速失败,还是希望调用代表您不断重试?

  • 您的应用程序是必须能够及时响应的面向用户的应用程序或网站,还是更能容忍延迟增加的后台处理任务?

  • 应用程序是部署在具有低延迟的可靠网络上,还是部署在具有不可靠连接的远程位置?

重试

概览

适用于 .NET 的 AWS SDK 可以重试因服务器端限制或连接中断而失败的请求。服务配置类有两个属性可用于指定服务客户端的重试行为。服务配置类继承了抽象的 Amazon.Runtime 中的这些属性。 ClientConfig适用于 .NET 的 AWS SDK API 参考的类别:

  • MaxErrorRetry 指定服务客户端级别允许的重试次数;SDK 会在失败并引发异常之前按指定的次数重试该操作。

    可以使用AWS_MAX_ATTEMPTS环境变量或共享 AWS 配置文件中的 max_ tempts 设置来控制应用程序的默认值。

这些属性的详细描述可以在摘要的 Amazon.Runtime 中找到。 ClientConfig适用于 .NET 的 AWS SDK API 参考的类别。默认情况下,RetryMode 的每个值对应一个特定的 MaxErrorRetry 值,如下表所示。

RetryMode 相应的 MaxErrorRetry (亚马逊 DynamoDB) 相应的 MaxErrorRetry (所有其他)
传统 10 4
Standard 10 2
自适应(实验性) 10 2

行为

当应用程序启动时

应用程序启动时,RetryModeMaxErrorRetry 的默认值由 SDK 配置。除非您指定其它值,否则在创建服务客户端时将使用这些默认值。

  • 如果您的环境中未设置这些属性,则 RetryMode 的默认值将配置为 Legacy,而 MaxErrorRetry 的默认值将配置为上表中的相应值。

  • 如果您的环境中设置了重试模式,则该值将用作 RetryMode 的默认值。MaxErrorRetry 的默认值将配置为上表中的相应值,除非您的环境中也设置了最大错误的值(下文将介绍)。

  • 如果您的环境中设置了最大错误的值,则该值将用作 MaxErrorRetry 的默认值。Amazon DynamoDB 是该规则的例外;MaxErrorRetry 的默认 DynamoDB 值始终是上表中的值。

当您的应用程序运行时

创建服务客户端时,可以使用 RetryModeMaxErrorRetry 的默认值(如前所述),也可以指定其它值。要指定其他值,请在创建服务客户端SQSConfig时创建并包含服务配置对象,例如AmazonDynamoDBConfigAmazon

一旦为服务客户端创建这些值,便不可更改。

注意事项

在进行重试时,会增加请求的延迟。您应根据应用程序对请求总延迟和错误率的限制来配置重试次数。

超时

适用于 .NET 的 AWS SDK 使您能够在服务客户端级别配置请求超时和套接字读/写超时值。这些值是在抽象 Amazon.Runtime 的TimeoutReadWriteTimeout属性中指定的。 ClientConfig班级。这些值作为 AWS 服务客户端HttpWebRequest对象创建的对象的TimeoutReadWriteTimeout属性传递。默认情况下,Timeout 值为 100 秒,ReadWriteTimeout 值为 300 秒。

当您的网络具有高延迟或存在导致操作重试的情况时,使用较长的超时值和较高的重试次数会导致一些开发工具包操作看上去没有响应。

注意

以便携式类库 (PCL) 为目标的版本使用该HttpClient类而不是HttpWebRequest类,并且仅支持 Timeout 属性。 适用于 .NET 的 AWS SDK

以下是默认超时值的例外情况。明确设置超时值时将覆盖这些值。

示例

以下示例说明如何指定标准重试模式、最多 3 次的重试次数、10 秒超时值以及 10 秒的读取/写入超时值(如果适用)。Amazons3Client 构造函数被赋予一个 AmazonS3Config 对象。

var s3Client = new AmazonS3Client( new AmazonS3Config { Timeout = TimeSpan.FromSeconds(10), // NOTE: The following property is obsolete for // versions of the 适用于 .NET 的 SDK that target .NET Core. ReadWriteTimeout = TimeSpan.FromSeconds(10), RetryMode = RequestRetryMode.Standard, MaxErrorRetry = 3 });

下一主题:

分页器

上一主题:

异步 APIs
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。