В настоящее время у меня есть служба WCF, которая использует COM DLL для своей службы. COM-объект загружается только один раз и сохраняется через синглтон. Проблема в том, что первый запуск занимает около 1 минуты для загрузки COM-объекта. Служба WCF размещается через службу Windows. Мне интересно, как я могу загрузить синглтон COM-объекта через запуск службы Windows.
protected override void OnStart(string[] args)
{
if (host != null)
{
host.Close();
}
Type serviceType = typeof(MyService);
host = new ServiceHost(serviceType);
host.Open();
objectConn.getInstance()
}
Когда я пытаюсь добавить загрузку Singleton в OnStart при запуске службы Windows, она всегда дает сбой. Я хотел бы спросить, если это правильный способ добавить подпрограмму запуска для экземпляра objectConn. Я попытался поместить загрузку одиночного файла в MyService construtor, но он вызывается только при первом вызове операции / метода веб-службы, который я вызываю, что делает первый вызов службы неудобным.
Я читал о DependencyInjection, но думаю, что добавленное поведение неприменимо, поскольку я просто хочу загрузить источник COM-объекта один раз.