技能 Azure.Messaging.ServiceBus (.NET)
📦

Azure.Messaging.ServiceBus (.NET)

安全

在 .NET 中构建 Azure Service Bus 消息解决方案

开发人员在分布式 .NET 应用程序中难以实现可靠的消息传递和发布/订阅模式。本技能提供完整的 Azure Service Bus SDK 指导,包含可直接用于生产的代码示例。

支持: Claude Codex Code(CC)
🥉 72 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“Azure.Messaging.ServiceBus (.NET)”。 Send a message to Azure Service Bus queue

预期结果:

  • 展示使用 DefaultAzureCredential 创建 ServiceBusClient 的代码示例
  • ServiceBusSender 初始化以针对目标队列
  • 包含正文内容的 ServiceBusMessage 构造
  • 使用正确释放模式的异步 SendMessageAsync 调用

正在使用“Azure.Messaging.ServiceBus (.NET)”。 Process messages in background

预期结果:

  • 配置 AutoCompleteMessages 和 MaxConcurrentCalls 的 ServiceBusProcessor
  • 带有 try/catch 和消息结算的 ProcessMessageAsync 处理器
  • 用于错误记录和诊断的 ProcessErrorAsync 处理器
  • StartProcessingAsync 和 StopProcessingAsync 生命周期管理

安全审计

安全
v1 • 2/25/2026

This is a prompt-only documentation skill with no executable code. Static analysis correctly identified zero security risks. The skill provides legitimate Azure Service Bus SDK guidance including authentication best practices (DefaultAzureCredential), proper resource disposal patterns, and standard messaging workflows. No suspicious patterns, injection attempts, or malicious intent detected.

0
已扫描文件
0
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
50
社区
100
安全
74
规范符合性

你能构建什么

企业消息队列集成

使用 Service Bus 队列构建微服务之间可靠的异步通信,包含适当的错误处理和消息结算。

基于主题的事件驱动架构

实现发布/订阅模式,将事件广播到不同服务中的多个订阅者。

基于会话的有序处理

使用基于会话的接收器按严格顺序处理相关消息,适用于订单履行工作流等场景。

试试这些提示

基本队列消息
展示如何使用 .NET 和 DefaultAzureCredential 身份验证向 Azure Service Bus 队列发送和接收单条消息。
后台消息处理器
创建一个 ServiceBusProcessor 来处理队列中的消息,支持并发调用、适当的错误处理和自动消息完成。
基于会话的有序处理
在 .NET 中实现基于会话的消息处理,使用 ServiceBusSessionReceiver 维护相关消息的 FIFO 顺序。
带过滤器的主题订阅
设置 Azure Service Bus 主题及多个订阅和 SQL 过滤器,根据消息属性将消息路由到不同的订阅者。

最佳实践

  • 在生产环境中使用 DefaultAzureCredential 进行身份验证,而不是连接字符串
  • 将 ServiceBusClient、发送者和接收者作为单例重用 - 它们是线程安全的,专为长期使用而设计
  • 始终使用 await using 语句释放资源,以确保正确的连接清理

避免

  • 为每条消息创建新的 ServiceBusClient 实例 - 导致连接耗尽和性能下降
  • 在客户端应用程序中使用共享访问密钥的连接字符串 - 暴露凭据且缺乏细粒度访问控制
  • 忽略消息锁定持续时间 - 如果处理超过锁定超时,消息可能会被放弃并重新传递

常见问题

Azure Service Bus 中队列和主题有什么区别?
队列提供一对一消息传递,其中每条消息由单个接收者消费。主题支持一对多发布/订阅模式,其中多个订阅可以接收相同消息的副本。
如何处理消息处理失败?
使用带有 try/catch 块的处理器模式。失败时,调用 AbandonMessageAsync 以释放锁进行重试,或者在超过最大传递计数后调用 DeadLetterMessageAsync 将问题消息移动到死信子队列。
什么时候应该使用会话?
当需要对相关消息进行 FIFO 排序时使用会话,例如按顺序处理特定订单或客户的所有事件。在消息上设置 SessionId 并使用 AcceptSessionAsync 或 AcceptNextSessionAsync。
我应该使用什么身份验证方法?
生产环境使用带有 Microsoft Entra ID 的 DefaultAzureCredential。它支持托管标识、Azure CLI 凭据和 Visual Studio 凭据。连接字符串仅应用于本地开发。
如何监控 Service Bus 消息处理?
在 Azure 门户中启用诊断日志,使用 Application Insights 进行遥测,并实现 ProcessErrorAsync 处理器来捕获处理错误和实体信息。
处理失败的消息会发生什么?
如果锁过期或调用了 AbandonMessageAsync,消息会自动重新排队。超过 MaxDeliveryCount 尝试后,消息将移至死信队列。使用 DeadLetteringOnMessageExpiration 自动将过期消息放入死信。

开发者详情

文件结构

📄 SKILL.md