2012-03-12 7 views
0

私は長いライブスレッド(5〜10分)を実行するために使用するwcfサービスを持っています。私は、エンドユーザーのブラウザがハングしないようにするために、関数を新しいスレッドに渡しています。WCFサービス、スレッドを保存して後で再開することは可能ですか?

この時点で、アプリケーションプールがリサイクルすると、スレッド内で行われている作業が緩くなります。

私は間違いなく、オブジェクトを処理するオブジェクトに何かを書き込んで、SQLで中断した部分を取り上げることができました。

IISをリサイクルしないようにする方法や、スレッドを再開する方法があることを望んでいました。

+0

投稿にコードを追加できますか?それは本当に役立つだろう。 –

+0

Windows Workflow FoundationとAppFabricを参照してください –

答えて

3

background tasks in an IIS hosted ASP.NET applicationは、既に知っているように、非常に悪い考えです。 IISでアプリケーションプールを構成し、リサイクルを無効にすることもできますが、アプリケーションのパフォーマンスにいくつかの副作用が生じる可能性があるため、Windowsスケジューラで実行するようにスケジュールされたWindowsサービスまたはコンソールアプリケーションで、 AppDomainがいつでもリサイクルされる可能性を懸念する必要はありません。

+0

扇動してくれてありがとう、私は別のルートに行くことにしました。サービスが再開しても、それは中断された場所を拾うことができます。 私はSQLテーブルに必要なすべての作業をロードし、サービスがシャットダウンする場合は、AppInitialize()を使用してそのテーブルに何かが残っているかどうかをチェックし、中断した箇所を確認します。 – Anthem127

関連する問題