具有二进制数据的WCF服务

时间:2009-06-21 12:15:19

标签: wcf soap post binary request

我有一个独特的问题,我希望能够处理包含任意二进制数据的传入HTTP POST请求。

我目前可以使用标准的ASP.NET页面处理程序或ASP Web服务处理这些数据,但我想知道它是否可以处理WCF服务中的INCOMING二进制数据?我可以深入了解WCF处理堆栈以绕过SOAP处理并在我自己的代码中处理原始消息吗?

据我所知,这打破了WCF的“合约”发布(WSDL无论如何),但我并不关心。

-Jeff

4 个答案:

答案 0 :(得分:2)

您可以使用直播MSDN

答案 1 :(得分:2)

考虑使用MTOM。 MTOM是一种使用SOAP消息作为原始字节传输大型二进制附件的机制,允许较小的消息。详情请见:

http://msdn.microsoft.com/en-us/library/aa395209.aspx

答案 2 :(得分:0)

只要我知道您可以配置服务绑定: http://www.c-sharpcorner.com/UploadFile/pjthesedays/bindwcf05032009012251AM/bindwcf.aspx

使用netTcpBinding

答案 3 :(得分:-1)

在这个问题上花了几个星期后,我有一个明确的答案:

您可以使用WCF的自定义二进制序列化替换XML / SOAP吗?

答案简短:没有

答案很长:是的,但你必须重写几乎所有的传输层接口,所以你也可以创建一个自定义的IHttpHandler并避免一起使用WCF。

Microsoft试图遵循SOAP标准(并且我认为该标准对此问题负责)打破了一个简单的编程规则 - >分层次的责任分工。 WCF / SOAP似乎是一个优雅的分层协议和传输,但实际情况是,层之间存在复杂的连接。这意味着WCF是一种极其复杂的通信协议,可提供传输,安全性,可靠性,发布,序列化以及在某种程度上相互依赖的其他功能。如果你想要的只是一个传输通道,WCF / SOAP会增加很多复杂性。

我确信我可以开始大量关于SOAP yes / no的咆哮,但我终于意识到WCF / SOAP并不是我应用程序所需要的。

-Jeff