Получение списка подключенных клиентов для службы wcf

Как я могу перечислить какой-либо идентификатор местоположения для всех подключенных клиентов для servicehost? Я использую дуплексное соединение для длительных вычислений. Хост службы - это синглтон.

Я могу выяснить (в .net 3.5) ip вызывающего клиента, но я не уверен, как получить ip всех подключенных клиентов.

2 ответа

По умолчанию WCF способствует использованию услуг "за вызов", например. ваши запросы клиента, запрос обрабатывается, а затем клиент снова отключается.

WCF не слишком хорошо подходит для и не предназначен для длительных подключений - поэтому вы не можете "перечислить подключенных к сети пользователей", поскольку их нет (или только для части второй).

WCF не похож на сервер домена Windows, на котором вы входите в систему и остаетесь зарегистрированным в течение длительного периода времени.


Я не думаю, что для этого есть что-то встроенное, но было бы довольно легко создать отслеживающий IServiceBehavior + IDispatchMessageInspector, который будет проверять RemoteClientEnpointMessageProperty до того, как вызов будет отправлен в службу impl и будет вставлять IP-адрес клиента в общий список и удалить его, когда заканчивается вызов/сеанс.

licensed under cc by-sa 3.0 with attribution.