BizTalk消息中错误的公钥标记 - 如何更改或修复

时间:2013-09-11 20:51:30

标签: biztalk publickeytoken

首先,BizTalk(这里是2006年)很新,只是在冷水中抛出。

以下是背景信息:更新了架构并使用错误的公钥令牌进行部署。用于发送发票的业务流程然后创建了一条错误消息,如下所示。

  

内部异常:收到意外消息类型'NevsSchemas.lt_invoice,NevsSchemas,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 33796310301beca5'与预期类型'NevsSchemas.lt_invoice,NevsSchemas,Version = 1.0.0.0,Culture不匹配=中立,PublicKeyToken = ef01f6a8aeff3082

唯一的问题似乎是不同的令牌,因为它现在有正确的令牌(ef01 ......)并且再次起作用。

问题是,我有114个发票处于挂起模式,并且看起来该消息包含错误的令牌(3379 ...)并且没有使用新的(更正的)架构更新,因为它试图使用同样的消息。

是否有一种简单的方法可以恢复所有114个实例并让它们通过?

浮现在脑海中的两个想法:

  1. 更改Biztalk数据库中的消息并替换令牌值。但由于它全部被压缩,它可能比2号更令人头疼。
  2. 将邮件内容复制并粘贴到新的XML文件中,然后由接收端口接收并正确处理。我们进行了测试,这是一个可行的选择,但这样做了114次?

2 个答案:

答案 0 :(得分:1)

使用过滤器(BTS.SchemaStrongName)创建一个发送端口,该过滤器使用不正确的公钥订阅模式,并将其写入文件位置。

答案 1 :(得分:0)

看起来你需要弄清楚一些代码来从暂停消息实例中提取邮件正文。

这可以通过BizTalk Terminator Tool或者通过一些WMI代码完成。 http://blogs.msdn.com/b/biztalknotes/archive/2013/05/22/saving-suspended-messages-using-wmi-powershell-and-the-microsoft-biztalk-operations-assembly-part-i.aspx上有一个有用的帖子显示了相关的技巧。

解压缩邮件并重新处理后,请确保通过BizTalk管理控制台终止已暂停的实例。