Windows服務方法在這種情況下是最好的。你也可以創建一個Windows Schedule,它會調用你的頁面(例如http:// [your-site]/[yourapp] /notifyusers.aspx),這將會做必要的事情。或者,如果您期望應用程序經常被訪問(因此您確定它不僅僅是可回收的),請將global_asax的Application_Start放置在QueueWorkingItem的啓動線程中,該線程將具有以下類似內容:
private void MyPingThread(object state)
{
ThreadExitState lstate = state as ThreadExitState;
EventWaitHandle handle = new EventWaitHandle(false, EventResetMode.ManualReset);
while (true)
{
if (lstate != null)
{
if (!lstate.Active)
return;
}
handle.WaitOne(1000 * 60 * 60 * 4); // Run the task each 4 hours
//Do your work here
}
}
保持Windows服務非常理想。你爲什麼要把這種功能放到網絡應用程序中?他們應該處理用戶請求,而不是運行週期性任務。 – jlafay 2011-05-12 12:40:25
這可能很容易,但這是不好的做法。由於它們在功能上有所不同,因此將網站和服務放在不同的域中很好。 – jlafay 2011-05-12 12:54:45