逻辑应用中的 Azure 服务总线队列错误

Posted

技术标签:

【中文标题】逻辑应用中的 Azure 服务总线队列错误【英文标题】:Azure service bus queue error in the logic app 【发布时间】:2017-04-08 05:50:52 【问题描述】:

我正在尝试在我的逻辑应用程序中使用服务总线队列发送操作,该操作将消息发送到队列。当逻辑应用运行时,操作返回此错误:


  "status": 403,
  "message": "Cannot use a trigger on an entity with auto-forwarding enabled.",
  "source": "127.0.0.1"

虽然在创建队列时我没有设置启用自动转发。有什么帮助吗?

【问题讨论】:

如果您使用 SBExplorer 检查队列,是否有任何机会启用转发? 【参考方案1】:

检查是否在队列上启用了会话。

【讨论】:

【参考方案2】:

检查您没有为服务总线队列启用分区。 在“新”天蓝色门户中创建队列时默认开启。

遇到同样的误导性错误。

【讨论】:

我想知道过去是否默认关闭,我发誓对于我创建的旧主题我没有取消选中它。无论如何,谢谢你把我的头发拉了出来。 是的,它在旧门户中默认关闭。我自己在那里做了一段时间的头发拉业务:-)【参考方案3】:

自动转发是服务总线队列和主题中的一项功能,通过启用它(设置目标队列或主题),发送到队列或主题的消息将被转发到目标实体。

您不能在逻辑应用发送或接收消息操作中使用此类实体。不能使用 Azure 门户设置此属性。您可以使用 Service Bus Explorer 或 Serverless360 等工具或使用此 .Net client。

查看此处了解有关Auto-Forwarding的更多详细信息

【讨论】:

【参考方案4】:

在我的情况下,存在指向该问题的触发错误,这与在命名队列上启用会话的强制执行有关。创建另一个队列并删除会话要求,解决了问题。

最初的错误信息并不清楚,因为它只说明了以下内容:


  "status": 403,
  "message": "Cannot use a trigger on 'transfwopartition' entity with auto-forwarding enabled.\r\nclientRequestId: b62228df-830d-4564-a1f9-6727102fe2f0",
  "source": "servicebus-ne.azconn-ne.p.azurewebsites.net"

自动转发已关闭,并且从未在我的队列中启用。同样适用于分区(不确定使用分区是否会有所不同,但根据此处之前的评论进行了检查)。

但是,如果您查看触发器错误,您将获得更详细的错误消息,如下所示,表明这是会话问题。因此,解决方案是使用不强制会话或不提供会话 ID(对于支持此参数的操作)的队列。

"body": 
    "status": 400,
    "message": "It is not possible for an entity that requires sessions to create a non-sessionful message receiver. TrackingId:265012a9-ffe8-4982-85c9-2799ec29b69b_G23_B34, SystemTracker:servicebusmiti:Queue:transfwopartition, Timestamp:2018-12-19T22:29:17\r\nclientRequestId: 872039fa-d310-47f5-a11e-50335ae5f128",
    "source": "servicebus-ne.azconn-ne.p.azurewebsites.net"

【讨论】:

以上是关于逻辑应用中的 Azure 服务总线队列错误的主要内容,如果未能解决你的问题,请参考以下文章

无法从 Azure 服务总线中的并发会话按顺序接收消息

Azure 服务总线中的数据库/缓存,用于在其他地方完成的队列中的作业

Azure 服务总线 - 发布到队列和事务范围内的主题

在不同的 Azure 服务总线队列中使用相同的消息 ID 会导致错误

Azure 服务总线中的死信队列中的消息是不是过期?

如何查看 Azure 服务总线队列中的所有消息?