私は、ASP.NET WebプロジェクトでQuartz.NETを使用してスケジューラを実装しています。このWebサイトには、WPFデスクトップアプリケーションのバックエンドを構成するWCFサービスが格納されています。したがって、Webサイトは、デスクトップアプリケーションのユーザーがアクティブな場合にのみアクティブになります。これは、夜間にWebサイトアプリケーションが終了する可能性が高いことを意味します。しかし、私はスケジューラを常に稼働させておきたい。WebサイトのルートURLをQuartz.NETジョブから取得するにはどうすればよいですか?
Windowsサービスを使用することは、私たちのホスティングのためにオプションではないことに注意してください。私はQuartz.NETのようなものに悩まされています(私が知る限り)。
20分のタイムアウトを避けるために、私は19分ごとにサイトのページを呼び出すスケジュールされたジョブを使用するための多くの提案を見てきました。最初の質問は、これを行う最良の方法ですか?
もしそうなら、私はもう2番目の質問があります。私が見たすべての例では、ハードコーディングされたURLが表示されています。これは避けたいものです。理想的には、コード内でURLを取得したいので、Visual Studioで実行すると、URLがlocalhost
というURLに転送され、デプロイされるとライブのURLが取得されます。
私はweb.configファイルにURLを入れて、展開時にこれをライブのものに変更するためにトランスフォームを使用することができますが、もっと良い方法があるかどうかは疑問でした。
返信いただきありがとうございますが、私の質問にどのように答えるか分かりません。最初のリンクは、私がQuartz.NETを使い始めたときに使った主なものでしたが、すばらしい紹介ですが、私の質問はカバーしていません。 2番目のリンクに関しては、(彼がいつものように)良い読書ですが、私の質問には答えません。スケジュールされたジョブを設定するためのさまざまなオプションが用意されていますが、すでにQuartz.NETにコミットしているので、今は切り替えたくありません。スケジューラを保持しているWebサイトのルートURLを見つけるのと同じ質問がまだ残っているので、切り替えは役に立ちません。どういう意味? –