我在这里 查看了示例代码,以了解如何处理 azure 中继的连接问题。他们使用指数退避机制Microsoft.Practices.TransientFaultHandling
来处理故障连接的重建:
retryStrategy = new ExponentialBackoff(100000, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(60),
TimeSpan.FromSeconds(1));
...
...
var shouldRetry = retryStrategy.GetShouldRetry();
if (shouldRetry(retryCount++, statusBehavior.LastError, out waitPeriod))
{
Thread.Sleep(waitPeriod);
Open();
Console.WriteLine("Relay Echo ServiceHost recreated ");
}
经过更多研究,我注意到根据Microsoft.Practices.TransientFaultHandling上的页面:
此内容和描述的技术已过时,不再维护。有关详细信息,请参阅瞬态故障处理。
然后,根据瞬态故障处理的链接,它指出:
重要提示:用于 Azure 存储和 Azure 服务总线的 SDK 的最新版本本机支持重试。建议使用这些而不是瞬态故障处理应用程序块
但是,我在任何地方都没有看到任何关于如何实现与示例类似的行为的示例,而是使用 Azure 服务总线 SDK 重试类。实现这一点的标准方法是什么?或者,上面的引用是说已经为 wcf 连接内置了重试机制,这样我就不必担心重新创建我的WebServiceHost
和它相应的连接?