Почему net.tcp в IIS7 является проблемой в среде общего хостинга? - PullRequest
1 голос
/ 15 апреля 2011

Я пытаюсь написать приложение для чата с push-моделью, но до сих пор я делал это только в интранет-среде с автономным wcf-сервисом (используя duplex net.tcp).Теперь я хочу разместить этот сервер онлайн в IIS7.Я проверил с несколькими хостинг-провайдерами, но все ответили что-то вроде: «Нет, у нас не активирован net.tcp, и мы, вероятно, никогда его не активируем».Почему они так не хотят этого делать?Кажется, я должен получить свой собственный виртуальный сервер?Но с какими рисками я сталкиваюсь при использовании net.tcp для IIS7?Какие еще варианты у меня есть?Я проверил "WebSockets", но он еще не готов, и я не уверен, является ли это решением в моем случае.Я пишу не HTML5-чат, а оконный чат для рабочего стола.

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

Ну, есть несколько потенциальных проблем

  1. При открытии нового порта необходимо будет настроить брандмауэры.
  2. При прослушивании по TCP поверхность атаки вашего приложения увеличилась.
  3. Необходимо управлять каждым клиентом, чтобы он не пытался использовать один и тот же номер порта.
  4. TCP требует, чтобы соединения оставались открытыми, что увеличивает нагрузку на сервер.
  5. Если машины находятся за NAT, что тоже усложняет

Обратите внимание, что вы можете использовать HTTP для дуплексной связи, используя WSDualHttpBinding

0 голосов
/ 15 апреля 2011

Я считаю, что основная причина не поддержки Net.TCP заключается в том, что IIS 6.0 не поддерживает не-HTTP протоколы , такие как Net.TCP , именованные каналы , MSMQ или Peer-to-Peer .Протоколы, отличные от HTTP, требуют использования Windows Process Activation Services (WAS) , что находится за пределами зоны комфорта большинства провайдеров общего хостинга.Это неотъемлемая часть IIS 7.0 и далее, но WAS все еще довольно нов с технологической точки зрения провайдера - их все еще нужно обучать.Надеемся, что время и, возможно, увеличение спроса (по мере освоения технологии) позаботятся об этом.

...