2011-07-11 7 views
0

私はいくつかのローカルアプリケーションに接続する必要があるC#.Net Webサービスを持っています。 接続中、ユーザーはこのサービスのウェブメソッド を使用してローカルアプリにジョブを送信できます。接続が確立されると、 に与えられたコールバック関数がいくつかあり、サービスがメモリにロードされていない(または接続されていない)場合、ローカルアプリは 'コールバック関数を呼び出します。IIS7で永続的にC#.Net Webサービスを作成するには?

IIS7がどのように動作しているのか、ロード時とサービスのDLLをアンロードするときはわかりません。 サービスを一切アンロードしないようにする必要があります。どうやってするか?

は、私はあなたがあなたのWCFでWebサービスを記述することをお勧め、あなたがWindowsサービスとしてまたはアプリケーションとして、あるいは通常のIIS上であなたのサービスをホストすることができ よろしく

+0

Webサービスでは、長時間実行されるバックグラウンドスレッドをインスタンス化する必要があります。このスレッドは、アプリケーションの主要部分になります。 Webサービスは、バックグラウンドスレッドとやりとりする薄層になります。それでは、Webサービスレイヤーを何度も閉じて開いても問題ありません。 – MattDavey

+0

はい、ありがとうございます。しかし、私は避けようとしたすべてのことです。私はそれについて考えていましたが、私には時間がかかりませんでした。 – theorem

+0

Btw、MattDavey、もし私がそうすれば、ウェブサービスとスレッドはどのように通信すべきですか?サービスがスレッドにメッセージを送信する方法 – theorem

答えて

1

、どうもありがとうございました。 WCFを使用すると、Webサービスとそのホスト方法をより詳細に制御できます。

+0

はい、ありがとうございます。しかし、それらは私が避けようとしたすべてのものです。私はそれについて考えていましたが、私には時間がかかりませんでした。 – theorem

1

アプリケーションプールのアイドル時間を0に設定すると、解決策 - ウェブサービスが永続的になるため、ローカルアプリケーションとの接続になります(IIS7はスリープ状態にならず、サービスDLLをアンロードします)。 )。

+0

あなたはそれを整理してうれしいです:)将来、Webサービスがアプリケーションの実際の肉の上に非常に薄い層であることを確認することで、このような問題を避けることができます。 – MattDavey

関連する問題