wcf - 使用多个架构文件和 <includes> 发布 Biztalk WCF 服务

标签 wcf biztalk publishing hl7

我这里有的是这样的:

Visual Studio 2010 中的 Biztalk 项目,在 Biztalk 2010 服务器上运行的相应 Biztalk 应用程序。接收端口接受 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 项目。

我的谷歌搜索只找到了过多的向导操作方法。

最佳答案

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

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

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

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

关于wcf - 使用多个架构文件和 <includes> 发布 Biztalk WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12045767/

相关文章:

.net - WAS 托管与 Windows 服务托管

biztalk - BizTalk 是 ESB 吗?

documentation - Biztalk 端口/编排文档

c# - 在网络服务器上隐藏代码隐藏文件(隐藏编程逻辑)

java - 使用 Gradle 进行本地发布不起作用

c# - .NET 框架中是否有针对不同 Web 方法类型(GET、PUT、POST、DELETE、HEAD)的常量?

WCF 和自定义文本编码 - 乱七八糟的业务

c# - 通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信,因为它处于 Faulted 状态

biztalk - 部署 BizTalk 应用程序时出错 - 访问被拒绝。 (来自 HRESULT : 0x80070005 (E_ACCESSDENIED)) 的异常

asp.net - 编译正常,但在发布可更新选项时出现问题