質問

特定の時間に通知 (電子メール) を受信するためのスケジューラが必要な Web サイトがあります。例えば。午後 5 時に午後 4 時 45 分の会議に出席するようリマインダーを設定している人は、午後 4 時 45 分に同じ内容の電子メールを受信します。

このサイトは共有サーバーでホストされているため、SQL ジョブやスケジューラ アプリケーションを実行するサーバーを制御することはできません。

このシナリオで役立つものは asp.net にありますか?

他のヒント

は、サーバーで仕事を持っている必要がありますが、ASP.NETからそれをトリガーするのは良い方法を持っていますか?

どのようにあなたの仕事を開始し、(別のコンピュータ上で。すなわち)他の場所で実行するタイマーを持つことになり、Webページの作成について、そのページを要求しています。 (ちょうどあなたの仕事をトリガするためにページを打つ)

は、ASP.NETを使用すると、アプリケーションがすべての回で生きている、とスケジューリングソリューションのホストプロセスとしてので、ウェブアプリケーションがIMO実現不可能であることを保証するものではありません。

Windowsサービスを使用すると、このシナリオのために必要なものです。あなたは完全なプロセスを起動および停止の制御だけでなく、アプリケーションを監視する方法があります。

あなたは別のマシン上でこのようなサービスをホストすることができますか? Webアプリケーションがホストされたサーバー上で実行されている場合でも、あなたが同じサーバー上のスケジューラを実行する必要が意味するものではありません。

本当にサーバーを制御できない場合 (つまり、SQL ジョブ、スケジュールされたタスクを使用できない、または Windows サーバーをインストールできない)、 システム.スレッディング.タイマー これは、Global.asax (アプリケーションの起動時など) で初期化され、x 分ごとにアプリケーション内の特定のメソッドを呼び出します。このメソッドはデータベースにクエリを実行し、どのような通知を送信する必要があるかを確認します。

ただし、これは実際には望ましいアプローチではありません。私の知る限り、タイマーが常に呼び出されることは保証されていません。Peter が言うように、Web アプリケーションが常に動作していることが保証されていないからです。

ただし、要件によっては、他に選択肢がない場合でも、これで十分なアプローチになる可能性があります。

あなたが本当に完全に立ち往生しているウェブアプリケーションでそれをホストするしかないただし場合、

あなたがGlobal.asax.csファイルにSystem.Timers.Timerインスタンスを作成する時に見ることができます。通常どおりElapsedイベントをアップワイヤー、及びそれを

の線に沿って何かをするいくつかのコードを与えます
protected void myTimer_Elapsed(object sender, EventArgs e)
{
    if(System.DateTime.Now Falls in Some Configured Time-Window)
        //Do Stuff
}
誰かが指摘したようにIISがその期間中にリセットされる可能性がありますように、

しかし、その保証はありません、 その場合、あなたはそれを逃しています。

これは本当にすることは望ましくないのですが、あなたはRazzieが示唆されたものを行うことができます。私はそれが何回も行って見てきました。醜いが、時にはyaはちょうど醜いハックを行う必要があります。

しかし、この方法を使用して、あなたのアプリケーションがアンロードされていないことを確認する必要があります。だから、あなたは生き続けるのいくつかの並べ替えを必要とします。私は常に生きているアプリケーションを維持するためにページ(ASPX)を引っ張ってくるのウェブ監視ツールを設定することをお勧め。これらの人は、無料の http://mon.itor.us/する

あります
  ソースので、

私は、あなたを信じていません   Quartz.Netのコード(1.0および1.0.1)   ビジュアルの下でコンパイルされません。   Studio.Net 2005年と2008年の唯一の方法   取得するにはQuartz.Netは全体使用することです   コンパイルSpring.Netパッケージ、   VS.Net 2005および2008の下に細かい

     

あなたはいくつかのヒントを共有することができない限り、どのように   コンパイルにquartz.dllを使用します   asp.netプロジェクト!の(ウェブページ   Quartz.Netとのreadme.txtにはありません   ソース上の任意の情報を提供   coudeコンパイル)すべての先端があります   歓迎!

私も最初にトラブルがあったが、必要なAsemblyInfo.csが親フォルダに含まれているためです。また、あなたが含まれている3つのDLLを追加する必要があります。

Quartz.Net(1.0および1.0.1)のソースコードは、Visual Studio.Net 2005年と2008年Quartz.Netを取得する唯一の方法の下でコンパイルされませんので、私は、あなたを信じていない全体の春を使用することですVS.Net 2005および2008の下で罰金コンパイル.NETパッケージ、

あなたはいくつかのヒントを共有することができない限り、

、どのようにコンパイルするとasp.netプロジェクトにquartz.dllを使用!すべての先端が歓迎される(Quartz.Netとのreadme.txtのWebページがソースcoudeコンパイル上の任意の情報を提供していません)!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top