Microsoft.Extensions.Http.Polly 10.0.0-preview.5.25277.114

About

Microsoft.Extensions.Http.Polly integrates IHttpClientFactory with the Polly library to provide comprehensive resilience and transient fault-handling. It allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner.

[!NOTE] This package is deprecated. Please use either Microsoft.Extensions.Resilience or Microsoft.Extensions.Http.Resilience instead.

How to Use

To use Microsoft.Extensions.Http.Polly, follow these steps:

Installation

dotnet add package Microsoft.Extensions.Http.Polly

Usage

Handle transient faults

AddTransientHttpErrorPolicy can be used define a policy that handles transient errors:

builder.Services.AddHttpClient("PollyWaitAndRetry")
    .AddTransientHttpErrorPolicy(policyBuilder =>
        policyBuilder.WaitAndRetryAsync(
            retryCount: 3,
            retryNumber => TimeSpan.FromMilliseconds(600)));

In the preceding example, failed requests are retried up to three times with a delay of 600 ms between attempts.

Dynamically select policies

To dynamically inspect a request and decide which policy apply, use the AddPolicyHandler extension method:

var timeoutPolicy = Policy.TimeoutAsync<HttpResponseMessage>(
    TimeSpan.FromSeconds(10));
var longTimeoutPolicy = Policy.TimeoutAsync<HttpResponseMessage>(
    TimeSpan.FromSeconds(30));

builder.Services.AddHttpClient("PollyDynamic")
    .AddPolicyHandler(httpRequestMessage =>
        httpRequestMessage.Method == HttpMethod.Get
            ? timeoutPolicy
            : longTimeoutPolicy);

In this example, if the outgoing request is an HTTP GET, a 10-second timeout is applied. For any other HTTP method, a 30-second timeout is used.

Main Types

The main types provided by this package are:

  • PollyHttpClientBuilderExtensions: Provides extension methods for configuring PolicyHttpMessageHandler message handlers as part of an HttpClient message handler pipeline
  • PolicyHttpMessageHandler: A DelegatingHandler implementation that executes request processing surrounded by a Polly.Policy
  • PollyServiceCollectionExtensions: Provides convenience extension methods to register Polly.Registry.IPolicyRegistry<string> and Polly.Registry.IReadOnlyPolicyRegistry<string> in a service collection
  • HttpRequestMessageExtensions: Provides extension methods for HttpRequestMessage Polly integration

Additional Documentation

For additional documentation and examples, refer to the official documentation on using Polly-based handlers in ASP.NET Core.

Feedback & Contributing

Microsoft.Extensions.Http.Polly is released as open-source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.

Showing the top 20 packages that depend on Microsoft.Extensions.Http.Polly.

Packages Downloads
Microsoft.Extensions.Http.Resilience
Resilience mechanisms for HTTP Client.
2
Senparc.CO2NET
Senparc.CO2NET 公共基础库 Senparc.CO2NET 开源项目: https://github.com/Senparc/Senparc.CO2NET
1
Senparc.CO2NET
Senparc.CO2NET 公共基础库 Senparc.Weixin SDK 开源项目: https://github.com/Senparc/Senparc.CO2NET
1
Senparc.CO2NET
Senparc.CO2NET 公共基础库 Senparc.CO2NET 开源项目: https://github.com/Senparc/Senparc.CO2NET
1
Senparc.CO2NET
Senparc.CO2NET Public Base Library Senparc.CO2NET Open Source Project: https://github.com/Senparc/Senparc.CO2NET
1

.NET Standard 2.0

Version Downloads Last updated
10.0.0-preview.5.25277.114 1 6/16/2025
10.0.0-preview.4.25258.110 1 6/17/2025
10.0.0-preview.3.25172.1 1 6/17/2025
10.0.0-preview.2.25164.1 0 3/18/2025
10.0.0-preview.1.25120.3 1 6/17/2025
9.0.6 1 6/17/2025
9.0.5 0 5/13/2025
9.0.4 1 6/17/2025
9.0.3 1 6/17/2025
9.0.2 1 6/17/2025
9.0.1 1 6/17/2025
9.0.0 1 6/17/2025
9.0.0-rc.2.24474.3 1 6/17/2025
9.0.0-rc.1.24452.1 1 6/17/2025
9.0.0-preview.7.24406.2 1 6/17/2025
9.0.0-preview.6.24328.4 0 7/9/2024
9.0.0-preview.5.24306.11 1 6/17/2025
9.0.0-preview.4.24267.6 1 6/17/2025
9.0.0-preview.3.24172.13 2 6/17/2025
9.0.0-preview.2.24128.4 1 6/17/2025
9.0.0-preview.1.24081.5 1 6/17/2025
8.0.17 1 6/17/2025
8.0.16 1 6/17/2025
8.0.15 1 6/17/2025
8.0.14 1 6/17/2025
8.0.13 2 6/10/2025
8.0.12 1 6/17/2025
8.0.11 1 6/17/2025
8.0.10 1 6/17/2025
8.0.8 2 6/6/2025
8.0.7 1 6/17/2025
8.0.6 1 6/9/2025
8.0.5 1 6/17/2025
8.0.4 0 4/9/2024
8.0.3 1 6/17/2025
8.0.2 1 6/17/2025
8.0.1 1 6/17/2025
8.0.0 1 6/17/2025
8.0.0-rc.2.23480.2 1 6/17/2025
8.0.0-rc.1.23421.29 1 6/17/2025
8.0.0-preview.7.23375.9 0 8/8/2023
8.0.0-preview.6.23329.11 1 6/17/2025
8.0.0-preview.5.23302.2 1 6/17/2025
8.0.0-preview.4.23260.4 1 6/17/2025
8.0.0-preview.3.23177.8 1 6/17/2025
8.0.0-preview.2.23153.2 1 6/17/2025
8.0.0-preview.1.23112.2 2 6/7/2025
7.0.20 1 6/17/2025
7.0.19 0 5/14/2024
7.0.18 0 4/9/2024
7.0.17 0 3/12/2024
7.0.16 1 6/17/2025
7.0.15 0 1/9/2024
7.0.14 0 6/11/2025
7.0.13 2 6/16/2025
7.0.12 1 6/17/2025
7.0.11 1 6/17/2025
7.0.10 2 6/15/2025
7.0.9 1 6/17/2025
7.0.8 1 6/17/2025
7.0.7 1 6/8/2025
7.0.5 2 6/15/2025
7.0.4 1 6/17/2025
7.0.3 1 6/17/2025
7.0.2 1 6/17/2025
7.0.1 0 12/13/2022
7.0.0 1 6/17/2025
7.0.0-rc.2.22476.2 1 6/10/2025
7.0.0-rc.1.22427.2 1 6/17/2025
7.0.0-preview.7.22376.6 1 6/17/2025
7.0.0-preview.6.22330.3 1 6/17/2025
7.0.0-preview.5.22303.8 1 6/17/2025
7.0.0-preview.4.22251.1 0 5/10/2022
7.0.0-preview.3.22178.4 1 6/17/2025
7.0.0-preview.2.22153.2 1 6/17/2025
7.0.0-preview.1.22109.13 1 6/17/2025
6.0.36 1 6/17/2025
6.0.35 1 6/17/2025
6.0.33 1 6/17/2025
6.0.32 0 7/9/2024
6.0.31 1 6/17/2025
6.0.30 1 6/17/2025
6.0.29 1 6/17/2025
6.0.28 0 3/12/2024
6.0.27 0 2/13/2024
6.0.26 1 6/17/2025
6.0.25 1 6/17/2025
6.0.24 1 6/17/2025
6.0.23 1 6/17/2025
6.0.22 1 6/17/2025
6.0.21 1 6/17/2025
6.0.20 1 6/17/2025
6.0.19 1 6/17/2025
6.0.18 0 6/13/2023
6.0.16 1 6/17/2025
6.0.15 0 3/14/2023
6.0.14 0 2/14/2023
6.0.13 1 6/17/2025
6.0.12 1 6/17/2025
6.0.11 1 6/17/2025
6.0.10 0 10/11/2022
6.0.9 1 6/17/2025
6.0.8 1 6/17/2025
6.0.7 1 6/17/2025
6.0.6 1 6/17/2025
6.0.5 1 6/17/2025
6.0.4 1 6/17/2025
6.0.3 1 6/17/2025
6.0.2 0 2/8/2022
6.0.1 1 6/17/2025
6.0.0 1 6/17/2025
6.0.0-rc.2.21480.10 1 6/17/2025
6.0.0-rc.1.21452.15 0 9/14/2021
6.0.0-preview.7.21378.6 1 6/17/2025
6.0.0-preview.6.21355.2 1 6/17/2025
6.0.0-preview.5.21301.17 0 6/15/2021
6.0.0-preview.4.21253.5 1 6/17/2025
6.0.0-preview.3.21201.13 1 6/17/2025
6.0.0-preview.2.21154.6 1 6/17/2025
6.0.0-preview.1.21103.6 1 6/17/2025
5.0.1 1 6/17/2025
5.0.0 1 6/17/2025
5.0.0-rc.2.20478.4 1 6/17/2025
5.0.0-rc.1.20451.7 1 6/17/2025
5.0.0-preview.8.20407.3 1 6/17/2025
5.0.0-preview.7.20365.4 0 7/21/2020
5.0.0-preview.6.20306.1 1 6/17/2025
5.0.0-preview.5.20278.3 0 6/10/2020
5.0.0-preview.4.20251.2 1 6/17/2025
5.0.0-preview.3.20215.2 1 6/17/2025
5.0.0-preview.2.20160.3 1 6/17/2025
5.0.0-preview.1.20120.4 1 6/17/2025
3.1.32 1 6/17/2025
3.1.31 2 6/7/2025
3.1.30 1 6/17/2025
3.1.29 2 6/13/2025
3.1.28 1 6/17/2025
3.1.27 0 7/12/2022
3.1.26 0 6/14/2022
3.1.25 1 6/17/2025
3.1.24 0 4/11/2022
3.1.23 1 6/17/2025
3.1.22 1 6/17/2025
3.1.21 1 6/17/2025
3.1.20 1 6/17/2025
3.1.19 1 6/17/2025
3.1.18 1 6/17/2025
3.1.17 1 6/17/2025
3.1.16 0 6/8/2021
3.1.15 0 5/11/2021
3.1.14 1 6/17/2025
3.1.13 2 6/7/2025
3.1.12 1 6/17/2025
3.1.11 0 1/12/2021
3.1.10 1 6/17/2025
3.1.9 1 6/17/2025
3.1.8 1 6/17/2025
3.1.7 1 6/17/2025
3.1.6 1 6/17/2025
3.1.5 1 6/17/2025
3.1.4 0 5/12/2020
3.1.3 1 6/17/2025
3.1.2 1 6/17/2025
3.1.1 1 6/17/2025
3.1.0 1 6/17/2025
3.1.0-preview3.19553.2 0 11/13/2019
3.1.0-preview2.19525.4 1 6/17/2025
3.1.0-preview1.19506.1 0 10/15/2019
3.0.3 1 6/17/2025
3.0.2 0 1/14/2020
3.0.1 2 6/15/2025
3.0.0 1 6/17/2025
3.0.0-rc1.19456.10 1 6/17/2025
3.0.0-preview9.19423.4 1 6/17/2025
3.0.0-preview8.19405.4 1 6/17/2025
3.0.0-preview7.19362.4 1 6/17/2025
3.0.0-preview6.19304.6 1 6/17/2025
3.0.0-preview5.19227.9 0 5/6/2019
3.0.0-preview4.19216.2 1 6/17/2025
3.0.0-preview3.19153.1 1 6/17/2025
3.0.0-preview.19074.2 1 6/17/2025
3.0.0-preview.18572.1 1 6/17/2025
2.2.0 1 6/17/2025
2.2.0-preview3-35497 1 6/17/2025
2.2.0-preview2-35157 1 6/17/2025
2.2.0-preview1-35029 1 6/17/2025
2.1.1 0 6/18/2018
2.1.0 1 6/16/2025
2.1.0-rc1-final 1 6/17/2025
2.1.0-preview2-final 1 6/17/2025