使用ReceiveMode.ReceiveAndDelete时处理在Azure暂存中运行的ServiceBus主题订阅服务器的技术

使用ReceiveMode.ReceiveAndDelete时处理在Azure暂存中运行的ServiceBus主题订阅服务器的技术,azure,servicebus,azure-appfabric,Azure,Servicebus,Azure Appfabric,我们在Azure SB中有许多主题,并通过VIP交换从登台到生产不断更新我们的环境 当一个实例在暂存中运行时,我们不希望订阅者读取和删除打算向在生产槽中运行的实例发送事件的消息 我提出的解决方案是创建在名称中包含RoleEnvironment.SubscriptionId的订阅。然后在RoleEntryPoint.OnStop()期间删除这些内容,以避免未使用的订阅 有没有更优雅的解决方案?我是否遗漏了一些明显的东西?一种方法是让应用程序了解配置设置。然后,它可以在登台/生产环境之间更改,并且可

我们在Azure SB中有许多主题,并通过VIP交换从登台到生产不断更新我们的环境

当一个实例在暂存中运行时,我们不希望订阅者读取和删除打算向在生产槽中运行的实例发送事件的消息

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


有没有更优雅的解决方案?我是否遗漏了一些明显的东西?

一种方法是让应用程序了解配置设置。然后,它可以在登台/生产环境之间更改,并且可以使用相同的配置值来启用/禁用生产环境中不需要的内容。对于服务总线,您可以创建一个暂存和生产命名空间,然后将url放入配置中

一种方法是让应用程序了解配置设置。然后,它可以在登台/生产环境之间更改,并且可以使用相同的配置值来启用/禁用生产环境中不需要的内容。对于服务总线,您可以创建一个暂存和生产命名空间,然后将url放入配置中

问题是,没有“好”的方法来检测某个东西是在生产中还是在暂存中。如果它是从配置中提取的,那么对配置后交换的任何更改都需要停机。我对此进行了更多的研究,发现了一些步骤,表明如果您愿意,可以阻止在配置更改时重新启动:问题在于,没有“好”的方法来检测某些内容是在生产中还是在暂存中。如果它是从配置中提取的,那么对配置交换后的任何更改都需要停机。我对此进行了更多的研究,发现了一些步骤,表明如果您选择以下选项,可以防止在配置更改时重新启动: