我有一个继承ClientBase的类TheServiceSoapClient
,它最初是由Visual Studio 2012根据与基于SOAP的远程Web服务关联的WSDL自动生成的。
var myClient = new TheServiceSoapClient();
var r = myClient.GetSomething(); // unreliable, need retry policy
然而,远程服务不是很可靠,有时会失败,返回403错误代码,如403或500.我想实现一个重试策略,让我拦截错误的响应并重试。
我该怎么做?
答案 0 :(得分:0)
在不可靠的InvalidOperationException
操作期间捕获GetSomething()
异常,并在重试之前使用适当的延迟。
retries = 0;
while (retries < retryLimit)
{
try
{
var r = myClient.GetSomething();
}
catch (InvalidOperationException exception)
{
retries++;
System.Threading.Thread.Sleep(50);
}
}