1

Im trying to write a chat app with the push-model but up to now I have only done so in a intranet-environment with a self-hosted wcf-service (using duplex net.tcp). Now I want to place this server online in IIS7. I have checked with a number of hosting providers but all have replied with something like: "No we dont have net.tcp activated and we probably never will activate it". Why are they so reluctant in doing so? It seems I have to get my own virtual server? But what risks am I facing using net.tcp for IIS7? What other options do I have? I have checked out "WebSockets" but it doesnt seem to be ready yet and Im not sure if its a solution in my case. Im not writing a HTML5-chat but a windowed chat for the desktop.

Andreas Zita
  • 7,232
  • 6
  • 54
  • 115

2 Answers2

2

Well there are a few potential problems

  1. By opening a new port the firewalls will need adjusted.
  2. By listening on TCP the attack surface of your application has increased.
  3. Each customer would have to be managed so they don't try to take the same port number.
  4. TCP requires connections to stay open, increasing load on the server.
  5. If machines are behind a NAT that complicates things too

Note that you can use HTTP for duplex communications, using WSDualHttpBinding

blowdart
  • 55,577
  • 12
  • 114
  • 149
  • 2. HTTP is also TCP. The risk isn't with TCP itself, it's with a new high-level protocol over TCP that isn't the familiar HTTP, which the host may not be experienced and can't perform deep packet inspection on. 3. Incorrect. See [Net.TCP Port Sharing](http://msdn.microsoft.com/en-us/library/ms734772.aspx). 5. Incorrect. It doesn't complicate matters more than HTTP, since both HTTP and Net.TCP run over TCP. (6.) WSDualHttpBinding is a bad choice outside of intranet - not internet-friendly due to NAT issues ([explanation](http://stackoverflow.com/questions/4526284)) – Allon Guralnek Apr 15 '11 at 17:58
0

I believe the main reason for not supporting Net.TCP is due to the fact that IIS 6.0 lacks support for non-HTTP protocols such as Net.TCP, named pipes, MSMQ or Peer-to-Peer. Non-HTTP protocols require using Windows Process Activation Services (WAS) which is outside the comfort zone of most shared hosting providers. It is an integral part of IIS 7.0 and onwards, but WAS is still rather new from the provider's technological point of view - they still need to be educated. Hopefully, time and possibly increased demand (as the technology is assimilated) will take care of that.

Allon Guralnek
  • 15,813
  • 6
  • 60
  • 93