回答
答案是:这取决于。据我所知,WCF的二进制编码要求两个端点都是WCF端点(除非Mono支持二进制编码,否则目前限制您到Windows)。另一个问题是您是否可以访问远程服务器正在侦听的端口。通过HTTP运行服务的原因之一变得如此流行,因为80端口更像是开放的。
准确地说 - 理论上,它应该工作得很好 - 但它是TCP - 不是HTTP - 所以期望防火墙问题,并且您的另一端也必须使用二进制编码谈论相同的tcp/ip绑定,所以它只在控制沟通的两端,真的。 – 2010-03-15 16:42:17
谢谢。因此,如果我打开端口434(或任何TCP),我应该能够通过互联网访问它?或者我需要使用客户端设置VPN隧道? – user274915 2010-03-15 16:46:13
@ jobless-spt - 根据网络的安全配置,访问远程端口需要做的事情会有很大的不同。您需要与您当地的IT/Sec人员进行交流,以便将其整理出来。但是,请注意,安全人员可能会非常不愿意将额外的端口暴露给外部网络;如果他们不是,你可能需要新的安全人员。 – 2010-03-16 13:59:14
序列化程序和传输很不相关。有针对常见场景的预配置绑定,但我的理解是,您可以将二进制串行器(NetDataContractSerializer
)插入到任何传输中。或者写你自己的; -p
然而 - 不同的传输配置(防火墙等)可能比纯HTTP更复杂。
回复评论(虽然我会反对的速度要求我见过NetDataContractSerializer
偶尔...惨败) - 与其说是运输(我怀疑你”与http保持最佳关系),但考虑this和this。另一个二进制串行器,非常适合发送某些类型的消息。它也可以很好地与MTOM(通过http)搭配使用。
谢谢马克。您是否可以提供有关HTTP协议以外的其他协议的限制。我需要了解,我们是否可以通过互联网使用其他协议?如果可能的话,需要做什么(开放端口等)? – user274915 2010-03-15 16:58:59
@ jobless-spt:添加了一些链接 – 2010-03-15 17:35:39
+1,HTTP上的二进制文件是一个很好的折衷方案。它保留在IIS中托管服务的能力(我不能告诉你上次我打算编写我自己的WCF主机)并且它对防火墙友好。如果您不是流式传输块或经常聊天,HTTP开销可能非常低。 – Josh 2010-03-18 05:30:45
- 1. StringIO与二进制文件?
- 2. C二进制文件与ascii文件
- 3. 二进制上载WCF腐败.mov文件
- 4. 二进制序列化与使用WCF
- 5. Nokogiri与微软WCF(二进制)沟通?
- 6. 非二进制(十六进制)字符收到了TCP与Python
- 7. 巨大的二进制文件与objcopy
- 8. 在Node.js上上载二进制文件
- 9. 通过TCP发送Erlang中的二进制文件
- 10. Heroku上的Golang二进制文件
- 11. 在二进制文件上的nvprof
- 12. Windows上的胖二进制文件?
- 13. c上的二进制文件
- 14. 如何在C++中追加二进制文件与二进制文件
- 15. WCF和二进制数据
- 16. SVN二进制文件与TortoiseSVN
- 17. gcov与通用二进制文件
- 18. Hessian与大型二进制文件
- 19. 复制二进制文件
- 20. 使用二进制协议的TCP帧
- 21. 在erlang中使用tcp发送原始二进制文件
- 22. 通过TCP发送二进制文件插座Ç
- 23. 通过TCP/IP连接发送二进制文件
- 24. 的Python:二进制文件
- 25. Hadoop的二进制文件
- 26. 如何上传与文件的二进制体节点JS
- 27. 问题与aiohttp POST的二进制文件上传
- 28. 更改上传二进制文件场
- 29. 在Ubuntu上创建二进制文件
- 30. 上传二进制文件问题
你想通过切换到TCP完成*它是什么?可能还有其他(甚至可能更好)选项不涉及开放洞。 – 2010-03-15 16:49:23
@Marc - 我只是想了解和探索可用的选项。我知道并且一直在使用HTTP。尝试了解其他选项(现在的TCP)以及它们的优缺点。 – user274915 2010-03-15 17:00:20