Сохранять службу WCF, размещенную в службе Windows? (т.е. создание экземпляра один раз и только один раз) - PullRequest
0 голосов
/ 22 февраля 2011

У меня следующая проблема.Существует служба WCF, размещенная в службе Windows, например:

sHost = new ServiceHost(typeof(DataService));
_thread = new Thread(new ThreadStart(sHost.Open));
_thread.Start();

, где DataService - это контракт службы WCF в решении.

Несколько уровней ниже службы WCF - это кэш вотдельная сборка.Но каждый раз, когда устанавливается новое подключение / прокси к службе WCF, создается новый экземпляр службы.Это приводит к созданию нового экземпляра кэша в DAL.Поэтому я хотел бы иметь службу WCF и, следовательно, все классы в стеке, созданные один раз и только один раз (за некоторыми исключениями из-за требований множественности).Поэтому служба WCF должна создаваться и прослушивать новые подключения, а не создавать экземпляр DataService каждый раз, когда устанавливается новое подключение.

Надеюсь, это имеет смысл.Как мне это сделать?

Большое спасибо, Фугу

Ответы [ 2 ]

2 голосов
/ 22 февраля 2011

Создайте экземпляр DataService самостоятельно и передайте экземпляр конструктору ServiceHost:

sHost = new ServiceHost(new DataService());
1 голос
/ 22 февраля 2011

Я думаю, что alexdej ответ правильный, но, не видя ваш код, не может прокомментировать, почему вы получаете исключение Null reference.

Однако я могу указать вам на эти видео », я закончил их только 2 дня назад, чтобыпомогите изучить WCF, и я уверен, что они ответят на ваш вопрос.

Самостоятельный хостинг WCF - http://channel9.msdn.com/shows/Endpoint/Endpoint-Screencasts-Self-hosting-WCF-Services/

Хостинг WCF в качестве службы Windows - http://channel9.msdn.com/shows/Endpoint/endpointtv-Screencast-Hosting-WCF-Services-in-Windows-Services/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...