我正在编写一个将使用Azure Service Bus的应用程序。对于本地开发,我使用Windows Server Service Bus提供相同的服务(使用的代码相同)。
我想编写应用程序,以便在发送或接收消息时容忍瞬态错误。为此,我希望能够测试故障处理代码可以处理在执行各种操作期间突然不可用的本地Service Bus实例。
理想情况下,我想围绕这些场景编写一些自动化集成测试,但我很欣赏它可能无法实现。
如何模拟本地服务总线上的瞬态错误?
答案 0 :(得分:1)
一件容易的事就是调用stop-sbservice(影响一个节点)或stop-sbfarm(影响整个服务器场)cmdlet。这可以让您在本地模拟Servicebus中断。然后,您可以调用start-sbservice或start-sbfarm来恢复服务并验证代码是否正常恢复。此方法还具有额外的好处,您可以控制服务何时返回(与仅崩溃进程相比)。 This page包含有关可用cmdlet的信息。
如果这还不够,我过去使用的另一种方法是关闭网络接口,或者,如果服务器在另一台机器上,则在用于与服务总线通信的端口上设置防火墙。