重複の可能性:
ASP.NET MVC 繰り返しタスク
MVC 3 Web アプリケーションを開発しています。Windows のタスク スケジューラを使用してバックグラウンド タスクを実行したいと考えています。Windows で Web アプリケーションのスケジュールを作成することはできますか? 前もって感謝します
重複の可能性:
ASP.NET MVC 繰り返しタスク
MVC 3 Web アプリケーションを開発しています。Windows のタスク スケジューラを使用してバックグラウンド タスクを実行したいと考えています。Windows で Web アプリケーションのスケジュールを作成することはできますか? 前もって感謝します
Windows タスク スケジューラを使用する代わりに、Quartz.net を使用して、Web アプリケーションでスケジュールされたバックグラウンド タスクを作成します。
このようなタスクを実行する簡単な方法は、それをアクションに実装してから、powershell を通じてこのページを呼び出すことです。それを行うには、次の手順を実行する必要があります。
1) PowerShell が署名されていないスクリプトを実行できるようにします。これを行うには、powershell を実行して次を実行します。
Set-ExecutionPolicy RemoteSigned
2) 次の内容で PowerShell スクリプトを作成します。
$client = New-Object System.Net.WebClient
$client.DownloadString("http://yourserver/controller/action") // provide here a correct URL to your action
たとえば、c:\scripts\task.ps1 に保存します。
3) 次のコマンドでスケジューラにタスクを作成します。
powershell.exe "c:\scripts\task.ps1"
はい、タスク スケジューラを使用して Web ページを呼び出すだけです。
例:
//Create a new scheduled task to open a browser eg: internet explorer then right
//click properties, in the run window type in with the quotes an example
"C:\Program Files\Internet Explorer\iexplore.exe" "http://www.mywebsite.com/something/myactionpage.chtml"
//If you want to open the page with another browser, just change the first path
そして、「タスク」は、myactionpage.chtml を表示するコントローラー内のコードになります。このような:
public ActionResult MyActionPage()
{
// Do some actions
return this.View();
}
はい、可能です。ただし、スケジュールされたタスクはローカル マシンで実行されるため、インターネットがダウンしている場合に問題が発生する可能性があります。
タスクを作成するには。基本的なスケジュール タスクを作成し、名前と実行頻度を設定します。次に、[プログラム/スクリプト] セクションに次のように入力します。
"C:\Program Files\Internet Explorer\iexplore.exe" "http://www.yourwebsite.com/backgroundtask"
あなたの sebsite/backgroundtask がある場所で、必要なアプリケーション ページの場所へのリンクを入力します。
タスクのスケジューリングに役立つコード ライブラリもあります。私が聞いた 2 つは Quartz: http://quartznet.sourceforge.net/tutorial/index.html と BackgroundWorker: http://backgroundworker.codeplex.com/です。
それらをチェックしてください。