我在一个恒定的循环中访问一个 web 服务,但是在几个请求之后,服务器返回一个 503 错误,我认为这可能是由重复请求的数量引起的。(你同意我的观点吗?)
我想做的是,根据下面的链接问题,创建一个重试函数,尝试多次加载 xml,每次尝试等待几秒钟。
foreach (var item in ListofItems){
XDocument.Load(URL) //this returns
.... //handle xml data
}
上面的代码可能会返回描述的异常(503),我想重新调整定义为我链接到这篇文章的问题的答案的扩展方法。
如果成功完成,它应该返回请求的 XmlDocument 结果。
这是我的尝试。
static XDocument RetryXMLLoadAction(Action action, int numRetries, int retryTimeout)
{
if (action == null)
throw new ArgumentNullException("action"); // slightly safer...
do
{
try { XDocument result = action(); return result; }
catch
{
if (numRetries <= 0) throw; // improved to avoid silent failure
else Thread.Sleep(retryTimeout);
}
} while (numRetries-- > 0);
}