【问题标题】:how to create MSMQ in pipeline component using Biztalk如何使用 Biztalk 在管道组件中创建 MSMQ
【发布时间】:2017-01-19 13:42:01
【问题描述】:

我需要在管道组件内动态创建一个 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 中发送消息的正确方式。

标签: c# biztalk msmq


【解决方案1】:

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

  1. 运行您的主机实例的服务帐户没有创建队列所需的权限,或者
  2. 正在创建队列,但由于队列地址不正确(缺少“.queue”后缀),其余代码什么也不做。

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

【讨论】:

    猜你喜欢
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多