0

ASP.NET-WebService でポーリング サービスを実行する必要があります。今、私は でBackgroundWorker始めている でそれを実装しましApplication_StartHttpApplication。これは機能しています。しかし、突然、それはもう機能しなくなります。

さて、次の質問があります。HttpApplication開始して実行した後の のライフタイムは何Application_Startですか? BackgroundWorker別の場所で実装して実行する必要がありますか?

4

1 に答える 1

2

BackgroundWorkerユースケース用に設計されていません。MSDNからの引用:

BackgroundWorker クラスを使用すると、別の専用スレッドで操作を実行できます。

通常、asp.net アプリケーション プールは、20 分間のアイドル時間後にシャットダウンするように構成されています (既定の IIS 設定)。これがあなたの場合に起こっていると思います。

Windows Serviceを開発する必要があります。以下は同じことについて簡単です:

Windows サービスを使用すると、独自の Windows セッションで実行される実行時間の長いアプリケーションを作成できます。これらのサービスは、コンピューターの起動時に自動的に開始でき、一時停止および再起動でき、ユーザー インターフェイスは表示されません。これらの機能により、サービスは、サーバー上での使用や、同じコンピューターで作業している他のユーザーに干渉しない長期実行機能が必要な場合に理想的になります。

既存のコードをすべて再利用できます。要件に応じて、この Windows サービスから Web サービスを定期的に呼び出すだけです。それでおしまい。

于 2013-09-21T17:44:47.630 に答える