我开发了一个BizTalk管道,虽然它在开发虚拟机上运行良好,但它不在生产环境中。这两种环境都运行BizTalk Server 2009。
我的管道中的所有组件在其他管道上都能正常工作。我得到的例外情况是,在Windows应用程序事件日志中(<
和>
之间的所有内容都无关紧要):
适配器收到的消息&#34; FILE&#34;在接收位置&lt;接收位置&gt;使用URI&lt; URI&gt;暂停 错误详细信息:执行接收管道失败:&lt; My Pipeline&gt;来源:&#34;未知&#34;接收端口:&lt;接收端口&gt; URI:&lt; URI&gt;原因:对象引用未设置为对象的实例 MessageId:&lt;消息ID&gt;
InstanceID:&lt; Instance ID&gt;
我知道没有组件被执行,因为第一个组件将内容写入自定义跟踪应用程序的数据库。这不会发生在此管道上,并且相同的组件适用于使用它的所有其他管道。
我的管道上的所有组件也用于其他管道,但没有一个管道存在这种问题。
所以这个异常发生在适配器和管道之间。最初使用的适配器是带有WCF-Custom
的{{1}},但使用sqlBinding
适配器会导致相同的异常。
现在,事件日志条目是我对所有通过此管道的消息的唯一跟踪。没有暂停的实例。当我使用默认的PassThrough或XMLReceive管道时,它就可以正常工作。
我从哪里开始?有什么不对? 是否有办法为此异常获取某种堆栈跟踪以帮助跟踪它?
答案 0 :(得分:1)
出于绝望,我开始一遍又一遍地部署管道,每次都留下不同的组件,直到我找到了罪魁祸首。
事实证明,我的本地开发VM(和Visual Studio)将其中一个组件从GAC中拉出而不是标准C:\Program Files (x86)\Microsoft BizTalk Server 2009\Pipeline Components
文件夹。此程序集与生产环境中的组件不匹配。