Codice di avvio per il caricamento di oggetti COM per servizio WCF
-
13-09-2019 - |
Domanda
Sono attualmente hanno un servizio WCF che utilizza una DLL COM per il suo servizio. L'oggetto COM viene caricato solo una volta e salvato tramite un Singleton. Il problema è la prima esecuzione richiede circa 1 minuto per caricare l'oggetto COM. Il servizio WCF è ospitato tramite un servizio di Windows. Mi chiedo come posso caricare il singoletto di oggetti COM tramite l'avvio del servizio di Windows.
protected override void OnStart(string[] args)
{
if (host != null)
{
host.Close();
}
Type serviceType = typeof(MyService);
host = new ServiceHost(serviceType);
host.Open();
objectConn.getInstance()
}
Quando provo ad aggiungere il carico del Singleton nel OnStart della startup Windows Service, non riesce sempre. Vorrei chiedere se questo ho il modo corretto di aggiungere routine di avvio per l'istanza objectConn. Ho cercato di collocare il carico singleton construtor MyService ma viene chiamato solo con la prima chiamata al servizio web operazione / metodo che invoco che rende la prima chiamata di servizio scomodo.
ho letto su DependencyInjection ma penso che il comportamento aggiunto non è applicabile in quanto voglio solo caricare la fonte oggetto COM volta.
Soluzione
Probabilmente si può fare questo - ma mi sento di raccomandare a farlo prima che il
host.Open()
chiamata. Questa chiamata gira l'intero runtime WCF e tutto, e preferirei fare tutte le attività di inizializzazione prima, se mai possibile.
Marc