сохранение канала обратного вызова wcf открытым на неопределенный срок / повторное подключение от клиента в случае сбоя

в настоящее время я пытаюсь настроить что-то вроде этого:

  • серверная служба Windows WCF зависает и прослушивает через tcp соединения от служба Windows на стороне клиента.
  • когда соединение получено (клиент вызывает метод CheckIn в службе), служба получает канал обратного вызова через OperationContext.Current.GetCallbackChannel
  • этот канал сохраняется в коллекции вместе с уникальным ключом (в частности, я сохраняю интерфейс обратного вызова, канал и ключ в List , где каждый из них является свойством)
  • теперь можно передавать вызовы этой клиентской службе на основе на указанном уникальном ключе

это сначала работает, но через некоторое время s tops - я больше не могу передавать звонки клиенту. Я предполагаю, что это потому, что соединение было разорвано внутри, и я пытаюсь работать с мертвым соединением.

имея в виду, у меня есть следующие вопросы:

  • как мне сказать wcf, что я хочу сохранить эти TCP-соединения на неопределенный срок (или как можно дольше)?
  • как мне проверить, из на стороне клиента, действительно ли мое соединение с сервером по-прежнему действует, чтобы я мог его отключить и снова проверить соединение с сервером, если мое соединение перегрето?

Я могу придумать бесполезные решения, но я надеюсь, что кто-то здесь найдет скажи мне ПРАВИЛЬНЫЙ путь.

15
задан Joshua Evensen 23 March 2011 в 13:27
поделиться