Смотрите также How does a WCF server inform a WCF client about changes? (Better solution then simple polling, e.g. Coment or long polling)WCF кликнуть через брандмауэр?
мне нужно использовать кнопочные технологии с WCF через брандмауэры клиентов. Это должна быть общая проблема, и я знаю, что она работает в теории (см. Ссылки ниже), но мне не удалось заставить ее работать, и я не смог найти образец кода, который его демонстрирует.
Требования:
- WCF
- Клиенты подключается к серверу через TCP-порт 80 (NetTcpBinding).
- Сервер отбрасывает информацию с нерегулярными интервалами (от 1 мин до нескольких часов).
- Пользователям не нужно настраивать свои брандмауэры, серверные передачи должны проходить через брандмауэры, у которых все входящие порты закрыты. Для этого требуется дуплекс TCP для того же соединения, двойное связывание не работает, так как порт должен быть открыт на брандмауэре клиента.
- Клиенты регулярно посылают пульты на сервер (возможно, каждые 15 минут), поэтому сервер знает, что клиент все еще жив.
- Сервер IIS7 с WAS.
Решение похоже на двусторонний netTcpBinding. На основе этой информации:
WCF through firewalls and NATs
Keeping connections open in IIS
Но я до сих пор найти пример кода, который работает .. Я попытался объединения «Duplex» и «TcpActivation» образцы из образцов WCF от Microsoft без везения. Пожалуйста, может кто-то указать мне пример кода, который работает, или создать небольшое примерное приложение. Большое спасибо!
Вы встречая каких-либо исключений? Что именно это не работает? – jrista 2009-10-23 01:05:29