2012-01-25 16 views
2

我们在Azure SB中有许多主题,并通过从交付到生产的VIP交换不断更新我们的环境。用于处理ServiceBus的技术使用ReceiveMode.ReceiveAndDelete时运行在Azure中的主题订户

当一个实例在分段中运行时,我们不希望订阅者读取和删除旨在将事件发送到我们在生产槽中运行的实例的消息。

我想出的解决方案是创建名称中包含RoleEnvironment.SubscriptionId的订阅。这些在RoleEntryPoint.OnStop()中被删除,以避免未使用的订阅。

有没有更优雅的解决方案,我错过了一些明显的东西?

回答

0

一种方法是有一个配置设置,您的应用程序可以理解。然后可以在分段/生产环境之间进行更改,并且可以使用相同的配置值来启用/禁用生产中不想要的内容。对于Service Bus,您可以创建一个Staging和一个Production命名空间,然后将该URL放入配置中。

+0

问题在于没有“很好”的方法来检测是否有生产或分期。如果它正从配置中拉出,那么对该配置后置交换的任何更改都需要停机。 –

+0

我对此进行了一些研究,并找到了一些步骤,指出如果您选择以下内容,可以防止重新启动配置更改:http://www.codeproject.com/Articles/63977/Windows-Azure-Development-Deep-Dive-Working-随着-C –

相关问题