.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客户端有很多调用,需要在任何地方添加可靠性层。