我最近对 BizTalk 应用程序进行了一些更改,一切都很顺利,我将其从开发环境移至测试环境,并且我正在开发的应用程序仍然运行良好。
问题是,现有的应用程序每当收到 HL7 消息时就会突然出现以下错误:
Fatal error encountered in 2XDasm. Exception information is Object reference not set to an instance of an object.
随后:
There was a failure executing the receive pipeline: "BTAHL72XPipelines.BTAHL72XReceivePipeline, BTAHL72XPipelines, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "BTAHL7 2.X Disassembler" Receive Port: "RP.MyPort.HL7v2.ORU" URI: "0.0.0.0:11001" Reason: Object reference not set to an instance of an object.
再次关注:
A message received by adapter "MLLP" on receive location "RPL.MyLocation.HL7v2.ORU.MLLP" with URI "0.0.0.0:11001" is suspended.
Error details: There was a failure executing the receive pipeline: "BTAHL72XPipelines.BTAHL72XReceivePipeline, BTAHL72XPipelines, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "BTAHL7 2.X Disassembler" Receive Port: "RP.MyPort.HL7v2.ORU" URI: "0.0.0.0:11001" Reason: Object reference not set to an instance of an object.
MessageId: {7B940750-046A-4E63-9268-EF76F6458CFE}
InstanceID: {5FC204B1-69DE-433E-B90B-AB1E9F77B3B7}
这两个应用程序之间的唯一区别在于,有效的应用程序使用自定义 Pipeline 组件,而出错的应用程序使用默认的 BizTalk BTAHL72XReceivePipeline(正如您可能从错误中看到的那样。)
最佳答案
好吧,我找到了答案。非常苦乐参半。
在某些时候,我一定是在开发过程中弄乱了我的接收位置上的 EncodingCharset。我已经好几个月没有碰过那个位置了,然后当我进行测试时,我复制了绑定(bind)以及错误的 EncodingCharset。
事实证明,我的 BTAHL72xReceivePipeline 配置中有一个空的 EncodingCharset。一旦我设置为“,0”,事情就又恢复了。
这是我正在谈论的内容的图像。
关于biztalk - 2XDasm 中遇到 fatal error 。异常信息是对象引用未设置到对象的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26591159/