2012-03-21 11 views
0

私は、ユーザーがタスクの実行をスケジュールできるようにする必要のあるWebアプリケーションを作成しています。 私はタスクをスケジューリングするためのさまざまなスレッドを通過しましたが、それらのすべてが私が気づいていないWindowsサービスを使用しています。さらに、私は予算の制約のためにサーバーシステムにVisual Studioをインストールすることはできません。 asp .netアプリケーションのバックグラウンドスレッドでスケジューラを実行するメソッドを作成する方法はありますか。どのコードサンプルも大きな助けになります。asp.netでメソッドの実行をスケジュールする必要がある

+1

とは別に、組み込みのWindowsタスクスケジューラを使用してIEを起動しますか?これを使用してページの実行をスケジュールすることができます。 Ex。 \ iexplore.exe%1 kpcrash

答えて

1

これは方法ではありません。スケジュールされたタスクが必要な場合は、コンソールアプリケーションを作成し、Windowsのタスクスケジューラを使用して実行する必要があります。

タスクが実行されるはずのページへのリンクを含む電子メールをユーザーに送信するアプリケーションを作成できます。

+0

返信いただきありがとうございますが、私がやっていることは実際には現在のプロジェクトの拡張です。 私の現在のアプリケーションは、私がタスクをスケジューリングする必要があるWebアプリケーションです –

+0

私は私の答えにいくつかの行を追加しました。残念ながら、Webアプリケーションでスケジュールされたタスクを作成することは意味がありません。 –

1

ASP.NETは、ネットワークからの要求を処理することを目的としています。 その中のすべてがその方向に向いています。だから、あなたはバックグラウンドタスクを実行することができますが、いくつかの注意点や落とし穴があります。

たとえば、何らかの要求が何らかの期間受信されなかった場合、IISはASP.NETアプリケーションをシャットダウンします。また、ファイルシステムの変更が検出された場合は、警告なしにアプリケーションを再起動することもできます。したがって、実行中のコードは中止されます。

これを回避することはできませんが、実際にはスケジュールされたタスクの実行には最適ではありません。

タスクの詳細をデータベースに格納し、常に実行中の単一のWindowsサービス(実際には難しいことではありません。たくさんの例があります)またはコンソールアプリケーションこれらのタスクを実行するために定期的に手動で実行するようにスケジュールされています(推奨)。

Quartz.NETなどのライブラリが、これらのタスクのスケジューリングや実行に役立つ場合があります。

関連する問題