我有一个独特的问题,我希望能够处理包含任意二进制数据的传入HTTP POST请求。
我目前可以使用标准的ASP.NET页面处理程序或ASP Web服务处理这些数据,但我想知道它是否可以处理WCF服务中的INCOMING二进制数据?我可以深入了解WCF处理堆栈以绕过SOAP处理并在我自己的代码中处理原始消息吗?
据我所知,这打破了WCF的“合约”发布(WSDL无论如何),但我并不关心。
-Jeff
答案 0 :(得分:2)
您可以使用直播MSDN
答案 1 :(得分:2)
考虑使用MTOM。 MTOM是一种使用SOAP消息作为原始字节传输大型二进制附件的机制,允许较小的消息。详情请见:
答案 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