3

我想从 biztalk 发送一个带有一些元数据的大 blob 到 WCF 服务。

我可以自由控制服务设置和 biztalk 设置,但我必须使用 http 才能访问服务。

blob 很可能在千兆字节范围内,因此带有 BasicHttp 或 WSHttp 的普通 WCF BizTalk 适配器是没有问题的,因为它将消息内容序列化为 XML。

我当前的方案是将元数据作为 XML 放入 biztalk 多部分消息的第一部分,并将有效负载放入第二部分。

要调用该服务,我将准备一个 WCF MessageContract 将元数据放入消息标头并将有效负载放入正文。我还将客户端和服务器端都设置为“流式传输”传输模式。

此方案适用于“普通”WCF 客户端,但如何配置 Biztalk WCF 适配器以执行相同操作,而无需将整个有效负载放入内存?

它当然可以用一个自写的适配器来完成,但我想知道是否有办法用 WCF 自定义适配器加上一两个行为来做到这一点?

4

3 回答 3

1

不是一个完整的答案我很害怕 - 从来没有机会看这个,但是 - 如果你还没有看过这个,看看 WCF 适配器包中的 OracleDB 适配器。它的文档表明它支持流式传输(我已阅读 Streaming and the Oracle Database Adapter and WCF LOB Adapter SDK and BizTalk Adapter Pack)而且我相信这是基于开箱即用的 WCF 适配器,这可能指向正确方向。

基本上,如果 WCF 适配器代码支持流式传输,您可能需要使用 WCF-Custom 适配器并自己提供正确的配置(通过使用提供的 UI 或通过从配置文件导入配置,这对于复杂的配置有时更容易)

对不起,相当“通用”的回应,我希望它有所帮助

于 2009-02-25T10:14:12.490 回答
1

BizTalk 中的 WCF 适配器支持开箱即用的流式传输。但是,您必须使用 WCF-Custom 来启用它。请参阅此博客文章了解更多信息。

于 2010-07-15T18:35:57.400 回答
0

你有 Biztalk 2006 吗?因为以前版本的 BizTalk 文档映射总是发生在内存中。

于 2009-02-06T10:45:10.757 回答