У меня есть клиент C#, реализующий System.ServiceModel.ClientBase для связи с API SOAP.
Я хочу, чтобы клиент автоматически повторял запросы при истечении времени ожидания .
Думаю, я мог бы использовать такую библиотеку, как Polly, для создания экземпляра HttpClient с политикой повтора.
Однако я не могу понять, как создать экземпляр клиента WCF с помощью этого HttpClient.
Я также не уверен, предназначен ли я для этого используя совершенно другой подход, например создание IEndpointBehavior.
Похоже, есть метод экземпляра CreateChannel, который можно переопределить, и метод ConfigureEndpoint статический частичный метод, который можно реализовать, но я не могу найти примеров того, как правильно их использовать для реализации повторной попытки либо с помощью созданного экземпляра HttpClient, либо с помощью какого-либо другого механизма.
Я искал через документацию по созданию клиентов. Есть разделы, посвященные использованию фабрик каналов, но, похоже, в нем также нет механизма предоставления HttpClient.
В документации по ожидаемым исключениям конкретно упоминается TimeoutException, но пример просто пытается/перехватывает вызовы на клиенте.
Мне действительно не хочется делать RetryOnTimeout(client => client.MethodToRetryOnTimeout());. Я знаю, что могу это сделать, и знаю, что могу создать декоратор, который обертывает все клиентские вызовы аналогичной логикой. Я просто не думаю, что это правильный подход.
Буду признателен за любую помощь, которая направит меня в правильном направлении.
Подробнее здесь: https://stackoverflow.com/questions/759 ... cf-clients
Как реализовать повторные попытки для клиентов WCF? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Метод Verify был вызван 4 раза после того, как повторные попытки исчерпаны с помощью Moq
Anonymous » » в форуме C# - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-