У меня есть служба Windows, которая записывает данные о скорости с радарного пистолета в базу данных. Кроме того, я сделал сервис WCF-сервером. У меня есть Forms и клиент CF, которые подписываются на услугу и мне перезванивают всякий раз, когда есть чтение, которое удовлетворяет определенным критериям.
Это работает в принципе, но через некоторое время канал отключается. Кажется, что есть некоторые фундаментальные проблемы с продолжительными соединениями (см.
http://blogs.msdn.com/drnick/archive/2007/11/05/custom-transport-retry-logic.aspx) и двусторонний обратный вызов HTTP может быть неправильным решением. Есть ли другие способы, которыми я могу реализовать шаблон публикации / подписки с WCF?
Редактировать: Даже с 2-часовым тайм-аутом канал в конечном итоге скомпрометирован. Я получаю эту ошибку:
Операция 'SignalSpeedData' не может быть завершена, поскольку время сеанса для сеанса истекло, ожидая получения сообщения. Чтобы увеличить время ожидания, либо установите свойство receiveTimeout для привязки в файле конфигурации, либо установите свойство ReceiveTimeout для привязки напрямую.
Это произошло через 15 минут после последнего успешного вызова. Мне интересно, если вместо того, чтобы держать сеанс открытым, можно восстановить новый сеанс для каждого вызова.