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

时间:2016-09-12 07:00:18

标签: c# biztalk msmq

我需要在管道组件内动态创建MSMQ。我正在以下列方式编写 IBaseMessage 执行方法。

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;
}

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

1 个答案:

答案 0 :(得分:0)

可能你的执行方法实际上正在被调用,但是接下来的两件事之一是:

  1. 运行主机实例的服务帐户没有创建队列所需的权限,或
  2. 正在创建队列但是其余代码什么都不做,因为队列被错误地解决了(缺少“.queue”后缀)。
  3. 您可以将调试器附加到本地btsntsvc.exe进程并查看是否正在调用它。