У меня есть написанная служба Windows на С#. Он работает и работает хорошо. Я добавил службу WCF в службу Windows, чтобы клиентские приложения могли подключаться к службе Windows и получать информацию о состоянии от службы Windows.
Я настроил службу WCF как одноэлементную, чтобы один и тот же экземпляр службы использовался для обработки всех запросов от всех клиентов следующим образом:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
Все клиенты могут подключаться и иметь доступ к одной и той же информации о состоянии в службе WCF. Однако я сталкиваюсь со следующим своеобразным поведением.
Пересмотрено:
я создаю экземпляр контракта службы WCF в своей службе Windows. Любая информация о состоянии, назначенная во время создания экземпляра, доступна для всех клиентов, подключающихся к службе.
Однако любая информация о состоянии, добавленная в экземпляр контракта службы позже непосредственно из службы Windows (не клиентами), не видна клиентам, подключающимся к службе. Как будто существует два экземпляра контракта службы: один для службы Windows и один для клиентов, которые подключаются к службе WCF.
Каков рекомендуемый (наилучший) способ создания экземпляра службы WCF и предоставления ему доступа к информации о состоянии, доступной в службе Windows?