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

从Dynamics 365发往Azure Service Bus的消息过滤方案问询

解决Dynamics 365到Azure Service Bus的消息过滤问题

一、消息头中是否存在操作类型标识?

是的,Dynamics 365通过插件注册工具配置的服务端点发送到Azure Service Bus的消息,会在消息头的自定义应用属性中携带操作类型标识:

  • 系统默认添加Microsoft.Dynamics.CRM.OperationType属性,值对应Dynamics的操作枚举:
    • 0 = 创建(Create)
    • 1 = 更新(Update)
    • 其他值对应删除、关联等操作

你可以直接基于这个头属性创建Service Bus订阅的过滤规则:

  • 创建操作订阅:过滤条件设为 Microsoft.Dynamics.CRM.OperationType = 0
  • 更新操作订阅:过滤条件设为 Microsoft.Dynamics.CRM.OperationType = 1

二、如何查看Dynamics发往Service Bus的消息及头信息?

有三种实用方式:

  1. Azure Portal直接查看
    进入你的Azure Service Bus主题对应的订阅,点击「Peek」按钮,选择目标消息后切换到「Properties」标签,即可查看所有消息头(含自定义应用属性)和payload内容。

  2. 临时调试代码
    写一段简单的Azure函数或控制台程序,接收消息并打印头信息:

    // Azure Service Bus触发函数示例
    public static void Run([ServiceBusTrigger("your-topic", "your-subscription", Connection = "ServiceBusConnection")] Message message, ILogger log)
    {
        log.LogInformation("消息头属性列表:");
        foreach (var prop in message.ApplicationProperties)
        {
            log.LogInformation($"{prop.Key}: {prop.Value}");
        }
        log.LogInformation("消息内容: {Content}", Encoding.UTF8.GetString(message.Body));
    }
    
  3. 使用Service Bus Explorer工具
    这是微软官方推荐的桌面工具,连接到你的Service Bus实例后,可直接浏览主题/订阅的消息,直观查看所有头元数据、属性和payload,还能快速测试过滤规则。

补充:如果默认头属性不存在怎么办?

若因版本或配置问题,消息头未携带操作类型属性,可修改Dynamics的发送插件,手动添加自定义头:

var message = new Microsoft.ServiceBus.Messaging.BrokeredMessage();
// 直接赋值操作类型字符串或枚举值
message.Properties["OperationType"] = context.MessageName; 

之后即可基于这个自定义头设置过滤规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:01:15