簡體   English   中英

在ASP.NET / C#/ IIS站點上實現守護進程?

[英]Implement Daemon on ASP.NET / C# / IIS Site?

我想為我們的中型消費者網站實現POP3郵箱處理組件。 我們的網站使用IPSwitch作為郵件/ smtp / pop主機。

此處理組件將允許我們提供“通過電子郵件回復此留言板討論”類型的服務。 它需要不斷運行; 或者至少每3-5分鍾一次。

我很確定我知道在C#中實現這個POP3閱讀器需要做些什么, 我不確定每3-5分鍾發生一次的機制,在機器重啟時保持運行等等。任務計划程序似乎有點脆弱。 這應該寫成Windows服務嗎? 如果是這樣,我可以獲得一些關於如何在C#中編寫可安裝服務的好指針嗎? 或者,如果有一個更好的計划在IIS框上運行守護進程,我會非常感激。

您可以在后台運行一個線程,只要您的應用程序處於活動狀態,該線程就會持續。 所以在你的global.asax中,在Application_Start上運行類似的東西

Thread  thread = new Thread(new Task());
thread.Start();

和你的任務:

private void Task()
{
//do something
Sleep(TimeSpan.FromMinutes(15).ToMilliseconds());
}

沒有測試過上面的代碼,但我認為應該可行。 以下鏈接顯示了構建簡單Scheduler的教程:

http://nayyeri.net/how-to-build-a-task-scheduler-system-for-the-asp-net-part-1

請記住,當您的應用程序尚未運行/初始化時,任務將不會執行,但我認為這不是您的方案中的問題。

好的,這篇關於在C#中創建Windows服務的教程似乎正是我所需要的。 任何需要注意的問題? 謝謝你的建議。

在C#中創建Windows服務

在這台PC上,我沒有Visual Studio,所以我無法為您提供准確的步驟,但是在您創建Windows服務項目之后,添加一個安裝程序。 我相信您需要右鍵單擊該服務,您將看到添加安裝程序的選項。

我在制作服務時所做的是將100%的邏輯放在服務之外的類中。 然后我添加了一個控制台程序並添加了一個引用,這樣我就可以輕松運行控制台程序(這反過來導致邏輯發生)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM