2011-12-21 36 views
4

我打算構建一個ASP.NET網站,該網站將位於共享主機上。我沒有爲此選擇Windows服務。在我可以執行任務的網站上,我的選項有哪些特定的選項,例如凌晨3點?也許開始一個單獨的線程,或者什麼?ASP.NET網站 - 在特定時間點燃一些代碼

謝謝。

+1

看看http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx – 2011-12-23 01:49:54

回答

4

我正要做類似的事情。

什麼需要做的是一個單獨的線程需要從Global.asax中拉開序幕。

void Application_Start(object sender, EventArgs e) 
    { 
     // Code that runs on application startup 

    } 

您還需要考慮的是,應用程序池將回收多少次,所以一定要確保它是基於一個特定的時間,你也有存儲是否已經運行數據庫或不櫃面應用游泳池在凌晨3點回收,極有可能。

您還需要有某種形式永葆服務爲一體,如果你的網站變爲無效應用程序池不會重啓,直到有人打它。

4

我們處理這類活動的兩種方法之一:

1)揭開序幕線程在Global.asax中Application_Start,負責在適當的時候執行的活動。

2)在應用程序啓動時將指定的超時值存儲在HttpRuntime.Cache中的虛擬對象,並讓它執行CacheItemRemovedCallback中的活動。

相關問題