質問

私は現在、そのサービスのためのCOM DLLを使用して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サービス操作/メソッドの最初の呼び出しと呼ばれています。

私は依存性の注入について読んだが、私は一度だけCOMオブジェクトのソースをロードするため、追加の動作が適用されないと思います。

役に立ちましたか?

解決

あなたはおそらくこれを行うことができます - しかし、私は前にそれをやってお勧めします。

host.Open()

コール。この呼び出しは、全体WCFランタイム、すべてをスピンアップし、私が今までに可能な場合は、その前に、すべての初期化作業を行うことを好むだろう。

マルク

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top