Código de inicialização para carregamento dos objetos COM para o serviço WCF
-
13-09-2019 - |
Pergunta
Atualmente, estou tenho um serviço WCF que usa um DLL para o seu serviço. O objecto COM só é carregado uma vez e guardadas por meio de um Singleton. O problema é a primeira execução leva cerca de 1 minuto para carregar o objeto COM. O serviço WCF está hospedado através de um serviço do Windows. Eu estou querendo saber como eu posso carregar o singleton do objeto COM através da inicialização do Windows Service.
protected override void OnStart(string[] args)
{
if (host != null)
{
host.Close();
}
Type serviceType = typeof(MyService);
host = new ServiceHost(serviceType);
host.Open();
objectConn.getInstance()
}
Quando tento adicionar a carga do Singleton no OnStart da inicialização do Windows Service, ele sempre falha. Gostaria de perguntar se isto i a maneira correta de adicionar rotina de inicialização para a instância objectConn. Tentei fazer o carregamento singleton no construtor MyService mas ele só é chamado com a primeira chamada para o serviço web operação / método que invoco o que torna a primeira chamada de serviço estranho.
Eu li sobre acho injeção de dependência, mas o comportamento agregado não é aplicável desde que eu só quero carregar a fonte objeto COM uma vez.
Solução
Você provavelmente pode fazer isso - mas eu recomendo fazê-lo antes do
host.Open()
chamada. Esta chamada gira todo o tempo de execução WCF e tudo, e eu preferiria fazer todas as tarefas de inicialização antes que, se alguma vez possível.
Marc