服务总线规则中的简单过滤器不起作用

问题描述

我有一个非常简单的要求,即为订阅设置规则,以便如果优先级为低,则会收到一条消息。我没想到这很难做到,而且行不通

我的留言在下面

{
  "messageId": "90db0000-d0ef-aeb6-cb37-08d86a2d0015","conversationId": "90db0000-d0ef-aeb6-6512-08d86a2d0018","sourceAddress": "ADDRESS","destinationAddress": "sb://MYBUS.servicebus.windows.net/my-topic","messageType": [
    "urn:message:Messaging.Services.Models:MyMessage"
  ],"message": {
    "messageIdentifier": "f79345cb-ce6a-445c-85b6-d8003eb52046","priority": "LOW"
  },"sentTime": "2020-10-06T19:21:18.0426039Z","headers": {},"host": {
    "machineName": "MACHINE","processName": "Application","processId": 27640,"assembly": "Application","assemblyVersion": "1.0.0.0","frameworkVersion": "3.1.8","masstransitVersion": "7.0.4.0","operatingSystemVersion": "Microsoft Windows NT 6.2.9200.0"
  }
}

我认为语法就像message.priority =“ LOW”一样简单。

然后我尝试针对消息正文本身创建一条规则,对destinationAddress进行过滤,该规则也未选择任何消息

这真令人沮丧,有人可以帮忙吗?

我正在使用Service Bus Explorer

保罗

解决方法

同意上一个答案。 从“ MS Docs”>“所有过滤器”评估邮件属性。筛选器无法评估邮件正文。 看到这里:https://docs.microsoft.com/en-us/azure/service-bus-messaging/topic-filters

,

Azure Service Bus筛选器在标头/属性上运行,并且无法访问消息正文/有效负载。您需要将<ul> {state.list.map((item,index) => ( <li key={index}>{item}</li> ))} </ul> 提升到标题中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...