.net 通过ClientBase自动生成的类重试SOAP策略?

.net 通过ClientBase自动生成的类重试SOAP策略?,.net,wcf,soap,.net,Wcf,Soap,我有一个类ServiceSoapClient继承,它最初是由Visual Studio 2012基于与基于SOAP的远程web服务相关联的WSDL自动生成的 var myClient = new TheServiceSoapClient(); var r = myClient.GetSomething(); // unreliable, need retry policy 然而,远程服务不是很可靠,有时会失败,返回403或500之类的HTTP错误代码。我想实现一个重试策略,让我截获错误的响应

我有一个类
ServiceSoapClient
继承,它最初是由Visual Studio 2012基于与基于SOAP的远程web服务相关联的WSDL自动生成的

var myClient = new TheServiceSoapClient();
var r = myClient.GetSomething();  // unreliable, need retry policy
然而,远程服务不是很可靠,有时会失败,返回403或500之类的HTTP错误代码。我想实现一个重试策略,让我截获错误的响应,然后根据需要重试


如何执行此操作?

在不可靠的
GetSomething()
操作期间捕获
InvalidOperationException
异常,并在重试之前使用适当的延迟

    retries = 0;  
    while (retries < retryLimit)
    {
       try
       {
           var r = myClient.GetSomething();
       }
       catch (InvalidOperationException exception)
       {
          retries++;
          System.Threading.Thread.Sleep(50);
       }
    }
retries=0;
while(重试次数
谢谢,但是没有办法在某处注入某种类型的错误处理程序吗?我对soap客户端有很多调用,需要在任何地方添加可靠性层。