2

重複の可能性:
ASP.NET MVC 繰り返しタスク

MVC 3 Web アプリケーションを開発しています。Windows のタスク スケジューラを使用してバックグラウンド タスクを実行したいと考えています。Windows で Web アプリケーションのスケジュールを作成することはできますか? 前もって感謝します

4

4 に答える 4

4

Windows タスク スケジューラを使用する代わりに、Quartz.net を使用して、Web アプリケーションでスケジュールされたバックグラウンド タスクを作成します。

http://quartznet.sourceforge.net/tutorial/index.html

于 2012-08-29T13:38:38.297 に答える
3

このようなタスクを実行する簡単な方法は、それをアクションに実装してから、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"
于 2012-08-29T13:56:23.183 に答える
3

はい、タスク スケジューラを使用して 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();
}
于 2012-08-29T13:35:17.753 に答える
1

はい、可能です。ただし、スケジュールされたタスクはローカル マシンで実行されるため、インターネットがダウンしている場合に問題が発生する可能性があります。

タスクを作成するには。基本的なスケジュール タスクを作成し、名前と実行頻度を設定します。次に、[プログラム/スクリプト] セクションに次のように入力します。

"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/です。

それらをチェックしてください。

于 2012-08-29T13:45:12.610 に答える