我同时具有Rcv和发送管道的接收位置。 这两个管道都有一个“自定义管道”组件,该组件具有一些“设计时”属性。 在发送管道中,如果我通过BizTalk管理控制台设置这些属性,则不会覆盖这些属性。但是,同一件事在Rcv管道中也可以正常工作。 我不能只在设计时设置属性,因为它是基于环境的值,需要在运行时设置。
答案 0 :(得分:0)
调试管道组件之后,这是我发现的:
以下是管道组件(http://geekswithblogs.net/cyoung/archive/2011/09/14/biztalk-server-2010-loading-properties-in-custom-pipeline-components.aspx)的常规工作
当执行管道组件时,管道组件的Load方法被调用两次-第一次加载管道上设置的所有设计时属性,而当第二次调用Load方法时,它将加载属性包如在BizTalk管理控制台上的管道配置中所设置的。 注意::只有更改的属性才会在此属性包中传递。
当我们使用请求-响应接收位置时,在接收管道上执行上述过程。但是,当从发送管道调用同一管道组件时,Load方法仅被调用一次,因此没有一个方法被调用。正在设置从BizTalk管理控制台设置的属性,并且设计时属性不会被覆盖,因此会引起问题。
我发现了类似的帖子,但问题相似,却没有答案(https://social.msdn.microsoft.com/Forums/en-US/c69b3af1-b208-4213-884e-a98b8583761c/strange-ipersistpropertybag-load-pattern?forum=biztalkgeneral)
这看起来像是设计使然,我将向Microsoft出示罚单。
答案 1 :(得分:-1)
请确保在更改设计时间后重新启动了主机。另外,您还可以设置一个断点,以查看其行为。