0

アプリケーションが Web サーバーにあるときにアプリケーションが実行されているかどうかを調べようとしています。これで、Visual Studio から、アプリを localhost で実行でき、停止できることがわかりました。

状況は、私のアプリで2 分間定義されたGlobal.asax場所があり、電子メールを送信する a を実行することです。Application StartTimerSub

私の質問は、ユーザーがリクエストしてから開始された場合Main.aspxGlobal.asaxユーザーGlobal.asaxがリクエストするたびに再開始されますMain.aspxか? Main.aspxまたは、呼び出されたかアイドル状態かに関係なく、2 分の間隔を維持しますか? この投稿のタイトルにあるように、他の手段では、ユーザーが Web アプリを離れるたびにMain.aspx、Visual Studio ボタンのように停止しますか? stopもしそうなら、それGlobal.asaxによって影響を受けたり止められたりしますか?

何かご意見は ?

4

3 に答える 3

1

@GJKHの回答に加えて:

IIS 7.5 または 8 を実行している場合は、 config で Always On オプションをオンにすることができますapplicationhost.config

開始モードのアプリケーション プール設定の IIS で、常に実行するように設定します。

ここに画像の説明を入力

于 2013-04-11T04:45:03.103 に答える
0

一般に、Web アプリケーションでタイマーを使用することはお勧めできません。その理由は、IIS がアプリケーション プールのワーカー スレッドのリサイクルを決定するタイミングがわからないためです。また、タイマーはユーザー固有ではなくグローバルになる可能性が高いため、セッションやその他のユーザー固有のデータなどは使用できません。

タスクを実行する必要がある場合は、そのタスクを実行する Windows サービスを作成する必要があります。

于 2013-04-11T01:51:40.883 に答える