Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Распределённые приложения и сеть > Определение номера порта


Автор: sCreator 17.10.2010, 16:48
Есть WCF сервис и его клиенты, на которые необходимо передавать сообщения от сервера о некоторых событиях. Но в связи с тем что события могут не наступать часами, использование Dual каналов с постоянным соединением не целесообразно.
поэтому вынес в dll клиентский WCF сервис для обратного вызова - при включении адрес клиентского сервиса регистрируется на сервере. Для возможности запуска нескольких клиентов на одном компьютере сейчас перебираю возможность запуска сервиса на диапазоне номеров портов.
Но вот сегодня нашел что если в настройках конечной точки указать нулевой порт
Код

<add baseAddress="net.tcp://localhost:0/MySystems/MyClientServices/MessServ/" />


То при открытии хоста порт ему присваевается системмой автоматически из свободных ( что видно любым файреволом ).

Вопрос как узнать этот номер порта?
myServiceHost.BaseAddresses[0] - выдает тот что в настройках = net.tcp://localhost:0/MySystems/MyClientServices/MessServ/

Автор: mihryak 25.10.2010, 14:25
MS в качестве лучшей практики рекомендует http://msdn.microsoft.com/en-us/library/ms734772.aspx, т.е. у тебя порт будет один, а задача различать клиентов ляжет на сервис

Автор: sCreator 25.10.2010, 15:47
Цитата(mihryak @ 25.10.2010,  15:25)
MS в качестве лучшей практики рекомендует http://msdn.microsoft.com/en-us/library/ms734772.aspx, т.е. у тебя порт будет один, а задача различать клиентов ляжет на сервис

Если я правильно понимаю Port Sharing, то это никак не облегчит мою задачу - чтобы несколько сервисов сидели на одном порту они должны отличаться дальнейшими путями
net.tcp://localhost:8781/MySystems/MyClientServices/MessServ/
net.tcp://localhost:8781/MySystems/MyClientServices/MessServ1
net.tcp://localhost:8781/MySystems/MyClientServices/MessServ2
...

а это ничем не лучше перебора портов

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)