我打算構建一個ASP.NET網站,該網站將位於共享主機上。我沒有爲此選擇Windows服務。在我可以執行任務的網站上,我的選項有哪些特定的選項,例如凌晨3點?也許開始一個單獨的線程,或者什麼?ASP.NET網站 - 在特定時間點燃一些代碼
謝謝。
我打算構建一個ASP.NET網站,該網站將位於共享主機上。我沒有爲此選擇Windows服務。在我可以執行任務的網站上,我的選項有哪些特定的選項,例如凌晨3點?也許開始一個單獨的線程,或者什麼?ASP.NET網站 - 在特定時間點燃一些代碼
謝謝。
我正要做類似的事情。
什麼需要做的是一個單獨的線程需要從Global.asax中拉開序幕。
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
}
您還需要考慮的是,應用程序池將回收多少次,所以一定要確保它是基於一個特定的時間,你也有存儲是否已經運行數據庫或不櫃面應用游泳池在凌晨3點回收,極有可能。
您還需要有某種形式永葆服務爲一體,如果你的網站變爲無效應用程序池不會重啓,直到有人打它。
我們處理這類活動的兩種方法之一:
1)揭開序幕線程在Global.asax中Application_Start
,負責在適當的時候執行的活動。
2)在應用程序啓動時將指定的超時值存儲在HttpRuntime.Cache
中的虛擬對象,並讓它執行CacheItemRemovedCallback
中的活動。
看看http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx – 2011-12-23 01:49:54