如何使用Biztalk在管道组件中创建MSMQ

本文关键字:创建 MSMQ 组件 管道 何使用 Biztalk | 更新日期: 2023-09-27 18:06:33

我需要在管道组件内动态创建一个MSMQ。我正在以以下方式编写IBaseMessageExecute方法。

public IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg)
{
    IBaseMessagePart bodyPart = pInMsg.BodyPart;
    if (!MessageQueue.Exists(@".'private$'NewQueue.Queue"))
    {
        var messageQueue = MessageQueue.Create(@".'private$'NewQueue.Queue");
        messageQueue.SetPermissions("Everyone", MessageQueueAccessRights.FullControl);
    }
    MessageQueue RequestQueue = new MessageQueue(@".'private$'NewQueue");
    Message SendMsg = new Message();
    SendMsg.Body = bodyPart;
    RequestQueue.Send(SendMsg, "Siddharth");
    return pInMsg;
}

消息从接收端口到发送端口,但它没有创建任何队列,因为我认为我的Execute方法没有执行或我没有编写正确的代码。请帮助。提前感谢:)

如何使用Biztalk在管道组件中创建MSMQ

可能你的execute方法实际上正在被调用,但随后发生了两件事之一:

  1. 运行主机实例的服务帐户没有创建队列所需的权限,或者
  2. 正在创建队列,但随后您的代码的其余部分不做任何事情,因为队列的地址不正确(缺少"。队列"后缀)。

您可以将调试器附加到本地btsntsvc.exe进程,并查看是否正在调用它。