2011-12-21 8 views
4

共有ホスティングになるASP.NET Webサイトを構築する予定です。私はこれのためのWindowsサービスのオプションがありません。午前3時に、タスクを実行できるWebサイト固有のオプションは何ですか?別のスレッド、または何かを開始するかもしれない?ASP.NETサイト - 特定の時刻にいくつかのコードを実行する

ありがとうございました。

+1

http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspxをご覧ください –

答えて

4

私はちょうど同じことをやろうとしていました。

何が起こる必要があるのは、別々のスレッドをGlobal.asaxから開始する必要があることです。

void Application_Start(object sender, EventArgs e) 
    { 
     // Code that runs on application startup 

    } 

また、アプリケーションプールがアプリを包みなさい何度も再利用するので、それが特定の時間に基づいていることを確認し、あなたもそれを実行しているかどうかを格納するデータベースを持っていることかないであろうことを考慮に入れる必要があります。プールは午前3時よりもリサイクルされている可能性が高いです。

また、あなたのウェブサイトが非アクティブになっているように、誰かがヒットするまでアプリケーションプールが再起動しないように、何らかの形でキープアライブサービスを行う必要があります。

4

我々は2つの方法のいずれかでの活動のこの種を扱う:

1)適切な時期に活動を実行する責任があるのglobal.asax Application_Startでスレッドをキックオフ。

2)HttpRuntime.Cacheにダミーオブジェクトを保存し、アプリケーションの起動時にタイムアウトを指定し、CacheItemRemovedCallbackでアクティビティを実行させます。

関連する問題