Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BizTalk消息中的公钥令牌错误-如何更改或修复_Biztalk_Publickeytoken - Fatal编程技术网

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

BizTalk消息中的公钥令牌错误-如何更改或修复,biztalk,publickeytoken,Biztalk,Publickeytoken,首先,BizTalk(这里是2006年)还是个新手,刚刚被扔到冷水里 以下是背景:更新了一个模式,并使用错误的公钥令牌部署了它。用于发送发票的业务流程随后创建了一条错误消息,如下所示 内部异常:收到的意外消息类型“Nevschemas.lt_invoice,Nevschemas,Version=1.0.0,Culture=neutral,PublicKeyToken=33796310301beca5”与预期类型“Nevschemas.lt_invoice,Nevschemas,Version=1

首先,BizTalk(这里是2006年)还是个新手,刚刚被扔到冷水里

以下是背景:更新了一个模式,并使用错误的公钥令牌部署了它。用于发送发票的业务流程随后创建了一条错误消息,如下所示

内部异常:收到的意外消息类型“Nevschemas.lt_invoice,Nevschemas,Version=1.0.0,Culture=neutral,PublicKeyToken=33796310301beca5”与预期类型“Nevschemas.lt_invoice,Nevschemas,Version=1.0.0.0,Culture=neutral,PublicKeyToken=ef01f6a8aeff3082”不匹配

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

问题是,我有114张发票处于挂起模式,消息似乎包含错误的令牌(3379…),并且没有使用新的(更正的)模式进行更新,因为它必须尝试使用相同的消息

是否有一种简单的方法来恢复所有114个实例并使它们通过

我想到了两个想法:

  • 更改Biztalk DB中的消息并替换令牌值。但因为它是压缩的,所以可能比2号更让人头疼
  • 将消息内容复制并粘贴到新的XML文件中,然后由接收端口接收并正确处理。我们进行了测试,这是一个可行的选择,但这样做114次

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

    看来您需要使用一些代码来从挂起的消息实例中提取消息体

    这可以通过BizTalk终止器工具完成,也可以通过一些WMI代码完成。网站上有一个有用的帖子,展示了相关的技巧


    提取消息并重新处理后,请确保通过BizTalk管理控制台终止挂起的实例。

    如果恢复其中一个发票消息实例,会发生什么?它会继续失败吗?是的,它会继续产生完全相同的错误如果我继续,它会不会继续使用“receive message”形状的同一业务流程,从而再次使用错误的键接收消息?是的,你是对的,如果业务流程已经使用了消息,那么这不会有帮助。