使用多个架构文件发布Biztalk WCF服务,并<;包括>;

使用多个架构文件发布Biztalk WCF服务,并<;包括>;,wcf,biztalk,publishing,hl7,Wcf,Biztalk,Publishing,Hl7,我在这里看到的是: Visual Studio 2010中的Biztalk项目,在Biztalk 2010服务器上运行的相应Biztalk应用程序。接收端口接受HL7-V3模式,将其转换为模式,该模式发送到SQL server 2008实例,并通过存储过程插入到表中。当接收端口使用文件适配器时,所有端口都按预期工作(来自HL7文件的数据插入到表中) 因此,为了通过web公开接收端口,我们需要一个web服务……好极了,我们在VS2010中内置了“Biztalk WCF服务发布向导”。这就是我停下脚

我在这里看到的是:

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

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

我可以按照向导执行“创建”步骤,它使从Biztalk程序集提取架构的过程进行了一半,然后它会弹出并抛出一个一般性错误:

“字典中不存在给定的密钥”

经过大量的搜索和挠头,我最终发现这个向导使用Xsd.exe(对我来说是新的)从模式生成代码。这让我读到了MSDN库的文章,其中指出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项目


我在谷歌上搜索到的向导操作指南太多了。

好吧,问题已经解决了,尽管遇到了太多的兔子洞,我还是无意中发现了一篇名为MSDN的文章,其中有一小段叫做“模式修改”。修改之一是将目标名称空间添加到HL7V3中的一些coreschema文件中

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

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

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