我正在使用ASP.Net mvc 3 C#來製作一個web應用程序。我有一些需要在x分鐘內運行的服務。此外,可以更新或更改此服務的一些設置。24小時運行服務
我不確定,我應該使用什麼技術來保持我的服務在服務器上運行,並且能夠使用ASP.Net MVC接口(web)遠程停止/運行它。
我假設一些隱藏的服務或應用程序有一個定時器每隔x分鐘觸發所需的作業。
,因爲它是我的第一個大.NET項目:)任何建議
謝謝
我正在使用ASP.Net mvc 3 C#來製作一個web應用程序。我有一些需要在x分鐘內運行的服務。此外,可以更新或更改此服務的一些設置。24小時運行服務
我不確定,我應該使用什麼技術來保持我的服務在服務器上運行,並且能夠使用ASP.Net MVC接口(web)遠程停止/運行它。
我假設一些隱藏的服務或應用程序有一個定時器每隔x分鐘觸發所需的作業。
,因爲它是我的第一個大.NET項目:)任何建議
謝謝
這取決於你比你的部署環境什麼控制請點擊這裏。如果這是你的服務器,你必須在它足夠的權限,你可以:
編寫中有一個計時器,喚醒並執行你的web應用程序的HTTP請求Windows服務。
設置一個計劃任務,該任務運行一個VB腳本(或類似的)來調用您的Web應用程序。
有一兩件事我不建議這樣做是在上有一個計時器你的web應用程序使用後臺線程。你可以這樣做(http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+haacked+%28you%27ve+been+HAACKED%29),但如果網絡的應用程序域被關閉,它本質上是不安全的。
如果您正在部署到ISP,共享主機,或出於某種原因您只能部署您的Web應用程序而沒有其他任何東西,您需要有一個腳本運行在其他地方,調用Web應用程序。大多數ISP,即使在共享主機上,也可以讓你設置一個計劃任務。然後,您可以上傳一個簡單的VB腳本到cgi-bin,例如調用web應用程序(http://chriscant.phdcc.com/2011/05/scheduled-task-ping-for-plesk-in.html)。
我正要自己實施最後的解決方案。
如果你有專門的服務器,你可以使用Windows的服務去。否則,我們可以創建web服務。該web服務將從計時器中調用,該計時器將在特定的時間間隔自動啓動。並且需要在通過global.asax文件指定的application_start事件下啓動此計時器。
我會讓應用程序每隔x分鐘運行一次控制檯應用程序,它從XML文件或數據庫中讀取設置。然後可以在Asp.NET MVC應用程序中調整設置。 您還需要一個始終運行的Windows服務,每x分鐘啓動一次控制檯應用程序。也可以通過Asp.NET應用程序設置間隔和可能的啓用屬性。
您可以按照建議開發控制檯。但是,您的查詢更多地涉及如何操作它。您的客戶是否有任何類型的調度程序。通常,調度程序擁有自己的web interace或API,允許您管理操作方面。
,如果你想調用Windows Services via .Net
您可以使用Quartz.NET的網站說,「Quartz.NET是一個全功能的,開源的作業調度系統,它可以從最小的應用到大型企業的系統中使用。」