You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure函数中动态设置Azure Service Bus主题订阅的MaxDeliveryCount

解决Azure Service Bus主题订阅MaxDeliveryCount设置不生效问题

你的代码只修改了内存中订阅对象的属性,没有把变更提交到Service Bus服务端,这就是设置不生效的原因。Service Bus Explorer也是通过调用管理API实现的配置修改,所以完全可以用代码实现,不需要依赖门户操作。

方法一:基于原有NamespaceManager实现

修改代码,在修改属性后调用UpdateSubscription方法提交变更:

var manager = NamespaceManager.CreateFromConnectionString(connectionString);
var subscription = manager.GetSubscription("topic", "subscription");
// 修改属性
subscription.MaxDeliveryCount = 10;
// 提交变更到服务端
manager.UpdateSubscription(subscription);

方法二:使用最新Azure Service Bus管理客户端(推荐)

NamespaceManager属于旧版Microsoft.Azure.ServiceBus SDK,微软现在推荐使用Azure.Messaging.ServiceBus.Administration下的管理客户端,更稳定且支持更多新特性:

using Azure.Messaging.ServiceBus.Administration;

var adminClient = new ServiceBusAdministrationClient(connectionString);
// 获取订阅属性
var subscriptionProperties = await adminClient.GetSubscriptionAsync("topic", "subscription");
// 修改MaxDeliveryCount
subscriptionProperties.MaxDeliveryCount = 10;
// 提交更新
await adminClient.UpdateSubscriptionAsync(subscriptionProperties);

注意:无论用哪种方式,确保你的连接字符串拥有管理权限(需要包含Manage权限的Shared Access Policy),否则会因权限不足导致修改失败。

内容的提问来源于stack exchange,提问作者andersmi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 04:22:34