Я пытаюсь запрограммировать клиентский сервер на основе инфраструктуры обратного вызова, предоставляемой WCF, но он не работает асинхронно.
Мой клиент подключается к серверу, вызывая метод входа в систему, где я сохраняю канал обратного вызова клиента, выполняя
MyCallback callback =
OperationContext.Current.GetCallbackChannel<MyNamespace.MyCallback>()
После этого сервер выполняет некоторую обработку и использует объект обратного вызова для связи с клиентом.
Все это работает, проблема заключается в том, что, хотя я установил метод в OperationContract
как IsOneWay=true
, сервер все еще зависает при выполнении вызова к клиенту.
Я проверил это, запустив сервер для отладки в Visual Studio, отсоединив его, запустив клиент, вызвав вышеупомянутый метод входа в систему, установив точку останова в реализованном методе обратного вызова клиента и сделав сервер отправить ответ клиенту. Сервер перестает делать то, что должен делать, ожидая ответа клиента.
Любая помощь приветствуется.