未设置通过管理控制台设置的Biztalk发送管道属性

未设置通过管理控制台设置的Biztalk发送管道属性,biztalk,pipeline,custom-component,biztalk-pipelines,Biztalk,Pipeline,Custom Component,Biztalk Pipelines,我有一个带有Rcv和发送管道的接收位置。 这两个管道都有一个自定义管道组件,该组件具有一些设计时属性。 在发送管道中,如果我通过BizTalk管理控制台设置这些属性,则不会覆盖这些属性。然而,同样的事情在Rcv管道上也可以完全正常工作。 我不能只在设计时设置属性,因为它是基于环境的值,需要在运行时设置。请确保在进行设计时更改后重新启动主机。此外,您还可以放置断点以查看其行为。调试管道组件后,我发现: 以下是管道组件()的常规工作方式 执行管道组件时,管道组件的加载方法将被调用两次—第一次加载管道

我有一个带有Rcv和发送管道的接收位置。 这两个管道都有一个自定义管道组件,该组件具有一些设计时属性。 在发送管道中,如果我通过BizTalk管理控制台设置这些属性,则不会覆盖这些属性。然而,同样的事情在Rcv管道上也可以完全正常工作。
我不能只在设计时设置属性,因为它是基于环境的值,需要在运行时设置。

请确保在进行设计时更改后重新启动主机。此外,您还可以放置断点以查看其行为。

调试管道组件后,我发现:

以下是管道组件()的常规工作方式

执行管道组件时,管道组件的加载方法将被调用两次—第一次加载管道上设置的所有设计时属性,第二次调用加载方法时,将加载BizTalk管理控制台上管道配置中设置的属性包。 注意:只有更改的属性才会在此属性包中传递

当我们使用请求-响应-接收位置时,在接收管道上遵循上述过程。但是,当从发送管道调用相同的管道组件时,Load方法只调用一次,因此不会设置BizTalk管理控制台中设置的任何属性,也不会覆盖设计时属性,从而导致问题

我发现了一个类似的帖子,有类似的问题,但没有答案


它看起来是设计出来的,我将向微软提出异议。

两个端口上的组件是否相同?两个管道都有相同的组件?自定义组件之后是否有任何组件?是的,两个组件完全相同。是的,在讨论中的管道组件之后还有另一个自定义组件。您能否与我们共享管道组件中的相关代码?在管道的哪个阶段进行接收和发送?您在发送过程中的什么时候在另一个管道组件或映射中查找属性?我已重新启动了主机实例。这没有帮助。我将调试解决方案并在这里发布我的发现。嗨。我不同意您的结果:)起初我和您有相同的问题,但在重新启动IIS应用程序池后,运行时属性加载得很好。请给我更多关于你的设置的信息!我的设置如下:请求-响应-接收WCF CustomIsolated类型的位置。在接收管道的验证阶段,我有一个简单的字符串替换组件。相同的组件用于发送管道的编码阶段。(为了得到响应,我有一个WCF自定义环回发送端口,但我认为这与问题无关)…我在BT2013上测试了这个,安装了CU6。您好,我的设置如下:我有一个带有WCF BasicHttp适配器的请求-响应-接收位置。我在Rcv管道的解码阶段和发送管道的编码阶段使用自定义管道组件。我尝试重新启动IIs应用程序池,但没有解决任何问题。奇怪。如果您愿意与我共享管道组件代码,我可以在我的机器上进行测试。至少可以看到加载和保存方法以及属性的声明。public virtual void Load(IPropertyBag pb,int errlog){object val=null;val=this.ReadPropertyBag(pb,“ConnectionString”);if((val!=null))this.ConnectionString=((string)(val));}private object ReadPropertyBag(IPropertyBag pb,字符串propName){object val=null;try{pb.Read(propName,out val,0);}catch(System.ArgumentException){return val;}catch(System.Exception e){throw new System.ApplicationException(e.Message);}return val;}