現在、サービスにCOMDLLを使用するWCFサービスがあります。COMオブジェクトは一度だけロードされ、シングルトンを介して保存されます。問題は、最初の実行でCOMオブジェクトをロードするのに約1分かかることです。WCFサービスは、Windowsサービスを介してホストされます。Windowsサービスの起動を介してCOMオブジェクトシングルトンをロードするにはどうすればよいのでしょうか。
protected override void OnStart(string[] args)
{
if (host != null)
{
host.Close();
}
Type serviceType = typeof(MyService);
host = new ServiceHost(serviceType);
host.Open();
objectConn.getInstance()
}
Windowsサービス起動のOnStartにシングルトンの負荷を追加しようとすると、常に失敗します。これがobjectConnインスタンスのスタートアップルーチンを追加する適切な方法かどうかを尋ねたいと思います。シングルトンの読み込みをMyServiceコンストラクターに配置しようとしましたが、呼び出したWebサービス操作/メソッドへの最初の呼び出しでのみ呼び出され、最初のサービス呼び出しが厄介になります。
DependencyInjectionについて読みましたが、COMオブジェクトソースを一度だけロードしたいので、追加された動作は適用できないと思います。