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