0

global.asaxのApplication_Start()でバックグラウンドスレッドを実行してWindowsサービスのように使用しますが、私のWebサイトですべてのセッションが終了するとapplicaton_endが起動します

Webサービスと連携するSMSビジネスがあり、Windowsサービスなどの着信メッセージをチェックするエージェントをサーバーに配置したい

セッションタイムアウトを10時間に増やしましたが、ブラウザアプリケーションを閉じると、アプリケーションが起動し、スレッドが機能しなくなりました。

サーバーのプロパティを変更できません

スレッドが機能し続けるようにapplication_endを無効にできますか?

英語の書き方が悪いのでお詫びします

4

3 に答える 3

1

それを行うには、サービスとして実行する別のプログラムまたはバッチ プログラムを作成する必要があります。ASP.NET はページの読み込み間で静的変数などを保持しますが、それを使用してバックグラウンドで何かを実行するべきではありません。物事が動き続けるという保証はありません。

サーバーで何かが発生したときにユーザー側で何かを行う必要がある場合 (Facebook などでメッセージを受信したり、誰かがリクエストに応答したり、その他のイベントが発生したり)、JavaScript でポーリング システムを実装する必要があります。ユーザーが見るWebページは、AJAXを使用して(調べてみてください...そのような素晴らしい概念です)、定期的にサーバーと通信して何かが起こったかどうかを確認します。これが、Facebook チャットがほとんどの Web メール システムと連携して新しいメッセージをチェックする方法です。サーバーはブラウザーと通信しません...ブラウザーはサーバーに何かが起こったかどうかを尋ねます。

以下は、AJAX を使用するチャット プログラムの例です: http://www.dynamicajax.com/fr/JSON_AJAX_Web_Chat-.html

これはまさにあなたがしていることではありませんが、ページがロードされた後に何かをチェックしようとして、ユーザーのブラウザーに応答させるという概念を示しています。

于 2012-04-22T05:31:42.837 に答える
0

Web サイトでセッションが開かれていない場合、IIS は自動的に Web サイト アプリケーションを閉じます。

于 2013-04-30T04:24:13.787 に答える
0

.NET バージョンの Quartz-scheduler ライブラリ (http://quartz-scheduler.org/) を使用して、構成 (cron 式) に基づいてジョブを定義およびトリガーすることはできません。

于 2012-04-23T06:54:45.527 に答える