0

首先,对于 BizTalk(这里是 2006 年)来说非常新,只是被扔进了冷水里。

这是背景:更新了架构并使用错误的公钥令牌部署了它。用于发送发票的编排随后创建了如下错误消息。

内部异常:收到意外消息类型“NevsSchemas.lt_invoice,NevsSchemas,版本=1.0.0.0,Culture=neutral,PublicKeyToken=33796310301beca5”不匹配预期类型“NevsSchemas.lt_invoice,NevsSchemas,版本=1.0.0.0,Culture=neutral, PublicKeyToken=ef01f6a8aeff3082

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

问题是,我有 114 张发票处于暂停模式,并且消息似乎包含错误的令牌 (3379...),并且没有使用新的(更正的)架构进行更新,因为它试图使用相同的消息。

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

想到了两个想法:

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

2 回答 2

1

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

于 2013-09-12T04:12:16.837 回答
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 管理控制台终止暂停的实例。

于 2013-09-12T13:47:37.963 回答