2

我这里是这样的:

Visual Studio 2010 中的 Biztalk 项目,相应的 Biztalk 应用程序在 Biztalk 2010 服务器上运行。接收端口接受 HL7-V3 架构,将其转换为发送到 SQL Server 2008 实例并通过存储过程插入到表中的架构。当接收端口使用 FILE 适配器时,一切都按预期工作(来自 HL7 文件的数据被插入到表中)。

因此,我们达到了需要 Web 服务以通过 Web 公开接收端口的地步……太好了,我们在 VS2010 中内置了“Biztalk WCF 服务发布向导”。这就是我停下脚步的地方。

我可以按照向导的“创建”步骤进行操作,它使从 Biztalk 程序集提取模式大约进行到一半,然后它会发出错误并引发一般错误:

“给定的键不在字典中”

经过大量搜索和挠头后,我终于知道该向导使用 Xsd.exe(对我来说是新的)从模式生成代码。这让我看到了 MSDN 库文章Here,其中指出 Xsd.exe 忽略了包含的架构。好吧,我们正在使用的消息的 HL7V3 模式集总共有大约 30 个文件——所有文件都相互引用,如下所示:

<xs:include schemaLocation="../coreschemas/infrastructureRoot.xsd"/>
<xs:include schemaLocation="COCT_MT050002UV07.xsd"/>
<xs:include schemaLocation="COCT_MT090100UV01.xsd"/>
<xs:include schemaLocation="COCT_MT240000UV01.xsd"/>
<xs:include schemaLocation="COCT_MT150000UV02.xsd"/>

所以这是我的问题。

所以现在我的问题是:有没有办法从 Biztalk 项目手动创建 WCF 服务,或者更好的是,让向导为这种情况工作?或者,只是关于在哪里寻找的任何建议,因为这是我的第一个 Biztalk 项目。

我的谷歌搜索只为巫师提供了过多的操作方法。

4

1 回答 1

3

好吧,问题已经解决了,尽管遇到了太多的兔子洞,我偶然发现了一篇名为Getting Started with HL7 v3 and Biztalk Server 2006的 MSDN文章,其中有一个名为Schema Modifications的小节。其中一项修改是将 Target Namespace 添加到 HL7 v3 中的一些 coreschema 文件中。

我过去看过这个文档,它提到这解决了在 BizTalk Server 中编译架构时不支持它们的问题。我有点忽略它,因为我没有收到任何错误,此外,我使用的是 2010,而不是 2006,所以我天真地认为“现在必须修复......没有错误”

并非如此,我完全按照文档的建议进行操作,并立即部署并运行 Biztalk WCF 服务发布向导,一切正常,我能够查看生成的帮助和 .wsdl 页面。

我希望这对将来的某人有所帮助。对我来说非常反高潮。

于 2012-08-21T18:24:20.230 回答