У меня есть сервер WCF, предоставляющий интерфейс с интерфейсом обратного вызова, который он использует для отправки событий клиентам.
Я предпочитаю не отмечать все методы интерфейса обратного вызова как «OneWay», поскольку это усложняет отслеживание ошибок и ведение журнала.
Клиент написан на WinForms, поэтому обратные вызовы не будут обрабатываться до тех пор, пока не будет возвращен вызов на сервер. (Это поведение, которое я хочу)
Я делаю все обратные вызовы с помощью асинхронного Eg. BeginMyMethod (...), поэтому сервер не заблокирован в ожидании клиента.
Однако, если обратный вызов отправляется тому же клиенту, который отправил запрос на сервер, то канал TCP блокируется самостоятельно, так как кажется, что он не может отправить ответ обратно клиенту до клиент отправил ответный вызов обратно на сервер по тому же каналу.
Есть ли способ сделать истинную двунаправленную связь по одному TCP-соединению в WCF?