检查TopicClient是否可以正常运行

时间:2018-09-19 14:31:48

标签: c# azure azureservicebus servicebus

我正在编写C#代码,它将向Azure ServiceBus发送一条消息,从而简化了说明:

private ITopicClient topicClient
 = new TopicClient(configuration["ServiceBusEndpoint"], configuration["ServiceBusTopic"]);

// test here

await topicClient.SendAsync(messageToSend.ToString());

如果可能的话,我想做的是进行某种测试/检查,SendAsync()方法很可能 有很大的成功机会,然后再调用它,而不是必须捕获所有异常。

也就是说,与ServiceBus的连接是有效的,并且可以接受该消息。

我从网上阅读的各种文档中找不到有关如何执行此操作的任何信息...

还有其他人遇到过这种情况吗?谢谢

1 个答案:

答案 0 :(得分:0)

虽然有一个属性IsClosedOrClosing,您可以阅读该属性以验证连接是否仍然存在,但这并不会消除处理异常的需要。

连接可能会在中间断开。否则您可能会受到限制。否则可能会出现网络故障,从而导致超时。或者可能是暂时错误,您的代码可能会重试。有plenty of exceptions种可能发生,您需要处理。

通常,您要查看异常并确定重试是否有帮助(错误是暂时的)。尽管客户端内置了重试策略,但有时这还不够。特别是在使用标准层时,您可能会受到限制。