我尝试使用推送模型编写聊天应用程序,但到目前为止,我只在具有自托管 wcf 服务(使用双工 net.tcp)的 Intranet 环境中这样做。现在我想把这个服务器放在 IIS7 中。我已经与许多托管服务提供商核实过,但都回复了类似的内容:“不,我们没有激活 net.tcp,我们可能永远不会激活它”。为什么他们如此不愿意这样做?看来我必须获得自己的虚拟服务器?但是使用 IIS7 的 net.tcp 会面临什么风险?我还有什么其他选择?我已经检查了“WebSockets”,但它似乎还没有准备好,我不确定它是否适合我的情况。我不是在编写 HTML5 聊天,而是为桌面编写窗口聊天。
问问题
477 次
2 回答
2
那么有一些潜在的问题
- 通过打开一个新端口,防火墙将需要调整。
- 通过侦听 TCP,您的应用程序的攻击面增加了。
- 必须对每个客户进行管理,以免他们尝试使用相同的端口号。
- TCP 要求连接保持打开状态,从而增加了服务器的负载。
- 如果机器位于 NAT 后面,这也会使事情复杂化
请注意,您可以使用 HTTP 进行双工通信,使用 WSDualHttpBinding
于 2011-04-15T17:12:06.700 回答
0
我认为不支持 Net.TCP 的主要原因是IIS 6.0 缺乏对诸如Net.TCP、命名管道、MSMQ或Peer-to-Peer 等非 HTTP 协议的支持。非 HTTP 协议需要使用Windows 进程激活服务 (WAS),这超出了大多数共享主机提供商的舒适范围。它是IIS 7.0 及更高版本的一个组成部分,但从提供商的技术角度来看,WAS 仍然相当新 - 他们仍然需要接受教育。希望时间和可能增加的需求(随着技术的同化)能够解决这个问题。
于 2011-04-15T18:19:47.347 回答