5

ストアドプロシージャを1時間ごとに実行し、Global.asaxファイルにタイマーを作成してデータセットをアプリケーション(dropdrownまたはasp.netコントロール)にロードする必要があります。

この種の開発は非常に新しいので、誰でもコードを投稿するか、コーディングで行う必要がある正確なフローとasp.netコントロール(ドロップダウンまたはリストコントロール)をロードする方法を提供してください。

前もって感謝します、

4

2 に答える 2

6

ASP.NET は、この仕事に適したツールではありません。

Web アプリケーションは、設計上、要求応答システムです。リクエストをリッスンし、それらのリクエストを処理して、レスポンスを返します。その範囲外では、アプリケーションが実行されていないと想定する必要があります。(実際、IIS はさまざまな理由でアプリケーションをシャットダウンし、新しい要求で再びアプリケーションを起動する可能性があります。)

スケジュールされたタスクに必要なのは、おそらくWindows Serviceです。これは、サーバーのバックグラウンドで実行するように設計されています。タイマーを含めるのは非常に簡単で、そのタイマーの tick イベントに応答してタスクを実行できます。

考えてみると...タイマーが作動すると、Web アプリケーションは何をするでしょうか? バックグラウンドプロセスを実行していて、実際にWebリクエストに応答していない場合、どのように「データをasp.netコントロールにロードする」のでしょうか? ページが要求されていなければ、ユーザーに表示するページはありません。

これが機能すると私が想像する方法は、Windows サービスがデータを読み取り、ビジネス ロジックを実行してそのデータを変換し、変換されたデータをデータベース内の別のテーブルまたはテーブル セットに書き込むことです。Web アプリケーションは、そのページにコントロールを設定するときに、常にその他のテーブルまたはテーブルのセットを参照します。基本的に、Web アプリケーションは、データを変換するバックエンド プロセスを認識しません。最新の変換されたデータが何であるかを示すだけです。

于 2012-07-12T12:44:44.407 に答える
6

このようなタスクのスケジューリングは、aspx アプリケーションの適切な用途ではありません。

ただし、試すことができるいくつかのハック/回避策があります。

http://www.codeproject.com/Articles/12117/Simulate-a-Windows-Service-using-ASP-NET-to-run-sc

http://www.west-wind.com/weblog/posts/2007/May/10/Forcing-an-ASPNET-Application-to-stay-alive

http://www.mikesdotnetting.com/Article/129/Simple-task-Scheduling-using-Global.asax

Windows サービスを作成するか、組み込みの Windows スケジューラを使用することをお勧めします。

于 2012-07-12T12:43:04.687 に答える