Если вы ведете себя самостоятельно (то есть пишете свой хост WCF самостоятельно) - конечно, нет проблем, сделайте все, что вам нужно сделать, прежде чем позвонить .Open()
на ServiceHost
.
ServiceHost host = new ServiceHost(typeof(YourServiceClass));
// do your initialization here
........
host.Open();
Если вы используете IIS или WAS или AppFabric для размещения службы WCF: я сомневаюсь, поскольку это сервер активации на основе сообщений, например, они запускают хост службы для обработки запроса по требованию, когда поступает запрос, и я не знаю ни одной точки расширения, чтобы войти в процесс инициализации, если вы используете обычный класс ServiceHost
для хостинга.
Тем не менее: вы, конечно, можете определить своих собственных потомков ServiceHost
- получить свой хост настраиваемой службы из ServiceHost
или ServiceHostBase
- они должны дать вам очки, чтобы войти в процесс инициализации (переопределяя InitializeRuntime
метод или реагирование на событие Opening
).
См. Документы MSDN по: