我想从biztalk发送一个带有一些元数据的大型blob到WCF服务。
我可以自由控制服务设置和biztalk设置,但我必须使用http来访问服务。
blob可能在千兆字节范围内,因此带有BasicHttp或WSHttp的普通WCF BizTalk适配器是不可能的,因为它将消息内容序列化为XML。
我当前的场景会将元数据作为XML放入biztalk多部分消息的第一部分,将有效负载放入第二部分。
要调用该服务,我将准备一个WCF MessageContract,将元数据放入消息头,将有效负载放入正文。我还将客户端和服务器端都设置为“流式”传输模式。
此方案适用于“普通”WCF客户端,但如何配置Biztalk WCF适配器以执行相同操作而不将整个有效负载放入内存?
它当然可以用自编写的适配器完成,但我想知道是否有办法用WCF自定义适配器加一个或两个行为?
答案 0 :(得分:1)
不是一个完整的答案我没有 - 从来没有机会看到这个,但是 - 如果你还没有看过它,请看看WCF适配器包中的OracleDB适配器。 它的文档表明它支持流式传输(我已阅读 Streaming and the Oracle Database Adapter和WCF LOB Adapter SDK and BizTalk Adapter Pack) 而且我认为这是基于开箱即用的WCF适配器,这可能指向正确的方向。
基本上,如果WCF adpater代码支持流式传输,您可能需要使用WCF-Custom适配器并提供正确的配置(通过使用提供的UI或从配置文件导入配置,这有时更容易对于复杂的配置)
对于相当“通用”的回复感到抱歉,我希望它有所帮助
答案 1 :(得分:1)
BizTalk中的WCF适配器支持流式传输。但是,您必须使用WCF-Custom来启用它。有关详细信息,请参阅this blog post。
答案 2 :(得分:0)