2012-03-19 8 views
8

wcfサービスの最初の呼び出しの前にいくつかのメソッドを実行する必要があります。 WCFサービスの起動方法はどこですか?WCFサービスの起動方法はどこですか?

Obs1:私のWCFサービスはIIS6上で動作します。 Obs2:私は.NET Framework 4.0を使用しています。

+2

WCFサービスのデフォルトの動作は、** per-call **です。各要求はサービスクラスの独自のインスタンスを取得し、呼び出したメソッドが実行されます。 WCFサービスには「スタートアップメソッド」のようなものは何もありません。あなたはサービスクラスを用意しています。サービスメソッドで行います。 –

答えて

4

これを行う1つの方法は、WCFサービスを自己ホストすることです(IIS以外の場合)。そうすれば、サービスをスピンアップする前に、どんなコードでも実行できます。

もう1つの方法は、各サービス動作の実装のコンストラクタに静的メソッド呼び出しを追加することです。その静的メソッド呼び出しは、初期化が実行されたことを確認するためのチェックを行います。この呼び出し中にマルチスレッドの同時実行性を処理するようにしてください。

3

サービスのライフタイム構成に応じて、WCFは各コール(シングルコール)、各クライアント(セッション)、またはすべてのクライアント(シングルトン)のすべてのコールに対して1回だけサービスクラスをインスタンス化します。

IInstanceProvide rインターフェイスを実装して、インスタンス化プロセスを制御できます。これにより、実際のwcf呼び出しが行われる前にクラスのメソッドを呼び出すことができます。

+0

+1 for IInstanceProvider - 私はしませんでしたそれについて知っている。 – RQDQ

関連する問題