0

セルフ ホステッド WCF サービスをオンデマンドで開始することはできますか?

これを実現するには、次の 2 つのオプションがあります。

  • 自己ホスト型の WCF の Web サーバーにリスナーを挿入し、特定のサービスの要求が届いたときにサービス ホストをスピンアップしてから、WCF がそのエンドポイントの存在を探し始める。また

  • 進行中の Web サービスを統合し、まだ実行されていない場合は要求のサービス ホストを開始し、そのサービス ホストに要求をリダイレクトします (IIS がそうしているように)。

Web サービスは UI ビジネス ロジックでイン プロセスで実行する必要があるため、IIS や WAS を使用できません。

どれが実現可能で、どうすればこれを達成できますか?

編集:
何百ものホストがあり、そのほとんど (約 95%) は (ほとんど) 使用されていませんが、利用可能にする必要があるため、サービスホストを開始することはできません。これは、900 エンティティのビジネス ロジック レイヤーを公開するためのものです。

4

2 に答える 2

1

次のルートを行きました:

  • 単一のサービス ホストを作成します。

  • すべてのサービス インターフェイスを実装する動的プロキシを作成します。

  • 動的プロキシが実装するすべてのインターフェイスにサービス エンドポイントを追加します。

  • 動的プロキシから正しい実装にディスパッチします。

于 2011-02-26T07:16:15.073 に答える
1

ロケーター サービスのセットアップを行うことができます。基本的に、「実際の」サービスのアドレスを返す軽量サービスを常に公開します。特定のサービスのアドレスが要求されるたびに、先に進んでスピンアップしてください。

クリーンアップが心配な場合は、サービス ホストのリストを保持し、何らかの非アクティブ タイムアウトを設定して、サービス ホストを定期的にシャットダウンすることができます。

ここにはいくつかの設計上の懸念があります。「別のサービスを呼び出す前に 1 つのサービスを呼び出す」という概念は、おそらくあるレベルでは悪い考えだと考えられています (2 つのサービスの状態を結合するように聞こえます)。

于 2011-02-25T21:11:18.027 に答える