我有一個非常有趣的問題。我有一個與asp.net網站。我需要的是獨立的服務,應該始終在後臺運行。例如,我可以在特定的日期做一些數據庫操作。而且無需從某人尋求請求。獨立。我應該遵循哪種方法?每個想法都會被愉快地接受。謝謝我該如何做一個始終在後臺運行的ASP.NET後臺服務?
回答
你應該實現另一個應用程序。您不需要任何請求,只需執行一些任務 - 然後使用桌面應用程序。如果您需要提供UI,那麼使用WPF或Win Forms,如果只執行一些任務,那麼只需使用控制檯應用程序。要在特定時間運行它,您可以使用Windows任務計劃程序。
您需要一個外部應用程序,可以是在您的PC /服務器上運行的服務/程序,也可以是託管服務提供商的網絡。 對於想法,如果您希望您的網站提供調度等,Windows Azure提供了一個調度服務,可以在給定的時間間隔內調用Web地址(例如yourwebsite.com/runscheduler)。當這個網址被稱爲你的網站,然後可以採取行動,當然通過做一些業務邏輯。
感謝您的回答我想我會實現另一個應用程序 – ahmetsarias
我建議你看看Revalee開源項目。
Revalee是一種服務,讓您安排網絡回調到Web應用程序。在你的情況下,你會安排一個回調,在特定時間執行特定的數據庫操作。 Revalee非常適用於離散事務操作的任務,如更新某些數據庫值或發送自動電子郵件消息(請閱讀:不長時間運行)。執行您的操作的代碼將全部駐留在您的應用程序中。
要使用Revalee,您可以:
安裝Revalee服務,Windows服務,您的服務器上。 Windows服務在源代碼中可用(您可以自行編譯)或在Revalee website提供的預編譯版本中提供。
使用Revalee客戶端庫在Visual Studio項目。 (也有一個特定於MVC的版本。)客戶端庫可以在源代碼中找到(也可以自己編譯),也可以通過NuGet提供預編譯版本。
當您的代碼調用
ScheduleDbOperation()
方法(此示例假設您需要您的操作從現在起運行12小時)時,您將會註冊將來的回調。private void ScheduleDbOperation() { DateTimeOffset callbackTime = DateTimeOffset.Now.AddHours(12.0); // The callback should be in 12 hours from now Uri callbackUrl = new Uri(string.Format("http://mywebapp.com/DbOperation.aspx")); // Register the callback request with the Revalee service RevaleeRegistrar.ScheduleCallback(callbackTime, callbackUrl); }
當Revalee調用你的應用程序恢復,你的應用程序將執行任何動作已經編寫它做。您可以通過添加下面的方法調用(
DbOperation()
)到您的網頁DbOperation.aspx
處理,點菜做到這一點:private void DbOperation() { // TODO Lookup the job information and execute the database operation // ... return; }
我希望這有助於。
注:上面的代碼示例使用的ScheduleCallback()
同步的版本,Revalee客戶端庫也支持異步調用點菜:
RevaleeRegistrar.ScheduleCallbackAsync(callbackTime, callbackUrl);
在情況下,它不是上述清晰,Revalee服務不是外部第三方在線調度程序服務,而是在您自己的網絡上完全控制您安裝和的Windows服務。它駐留在您自己選擇的服務器上並運行,很可能是您的Web服務器(但這不是必需的),它可以從您的ASP.NET應用程序接收回調註冊請求。
聲明:我是參與Revalee項目的開發人員之一。然而,要清楚的是,Revalee是免費的開源軟件。源代碼位於GitHub。
- 1. Android:始終在後臺運行服務?
- 2. 如何保持後臺服務始終在後臺
- 3. 在後臺運行服務
- 4. 服務在後臺運行?
- 5. 創建一個始終運行的後臺任務
- 6. 服務如何在後臺運行 - Android
- 7. go run app.go始終在後臺運行
- 8. 後臺運行服務器
- 9. 運行後臺服務ruby
- 10. 如何正確運行後臺服務?
- 11. 如何繼續在後臺運行前臺服務也在android
- 12. 在後臺運行的android服務
- 13. iPhone:如何創建始終在後臺運行的線程?
- 14. 替代後臺傳輸服務在後臺運行上傳
- 15. 如何在後臺運行ASP.NET頁面?
- 16. GPS服務在後臺運行(Android)
- 17. 在後臺運行python服務器
- 18. Android服務未在後臺運行?
- 19. 秒錶與服務在後臺運行
- 20. iOS - 在後臺運行服務
- 21. 在後臺運行VOIP(PJSIP)服務
- 22. iOS,ObjC:服務在後臺運行
- 23. 在iOS中運行後臺服務
- 24. 試圖在後臺運行服務
- 25. Android服務不會在後臺運行
- 26. C#/ Mono在後臺運行服務器
- 27. 在後臺運行GPS服務
- 28. GPS服務在後臺運行
- 29. 不斷在後臺運行服務
- 30. 永遠在後臺運行服務..? Android
可以使用的Global.asax與計時器 –
文件我做了一個項目的方式在那裏我需要每1分鐘後,調用一個方法 –
或者你可以將服務器上的 –