У меня есть приложение Windows, которое содержит две службы в качестве netTCPBinding
а также имеет некоторые диалоговые окна клиентов.
одна из услуг - дуплекс. Когда я запускаю два разных экземпляра своего программного обеспечения (один как сервер и один как клиент), проблем не будет.
Однако, когда я запускаю только один экземпляр как сервер и клиент (в тандеме), дуплексная служба не работает. Проблема возникает при вызове метода Subscribe()
. после исключения тайм-аута будет вызван метод Subscribe()
хоста.
Вы не знаете, как это решить?
Проблема была не из-за WCF. Это было из-за StreamInsight. Если вы используете приемники на основе WCF во встроенных сценариях StreamInsight, обратите внимание, что приемник не будет создан до тех пор, пока в ваш запрос не поступит событие. В моем случае невозможно было сначала подключиться к приемнику, прежде чем отправлять данные в источник.
В вашем вопросе недостаточно информации, чтобы дать подробный ответ, и я не уверен, но я все равно попробую.
Бьюсь об заклад, ваша проблема заключается в поведении повторного входа: просто отметьте свою реализацию службы следующим:
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant)]
Это позволит принимать входящие вызовы с одной конечной точки во время обработки запроса.