2016-07-22 48 views
1

我想實現一個web應用程序與asp.net mvc在這我必須接收電子郵件24/7,並做一些traitement和notifie特定用戶。我的問題是怎麼可以即使用戶沒有登錄,我也會一直運行線程。在asp web應用程序中全天候運行線程

的電子郵件接收我使用S22.Imap

AutoResetEvent ReconnectEvent = new AutoResetEvent(false); 
ImapClient Client; 

while (true) 
{ 
    Client = new ImapClient("imap.gmail.com", 993, "login", "password", AuthMethod.Login, true); 
    ReconnectEvent.WaitOne(); 
} 
+1

收到郵件時你會做什麼?這可以通過與網站一起運行的某種形式的共享存儲(db等)來更好地服務嗎? –

+1

通常最好把這種不斷的工作轉移到一個單獨的服務中(一個不同的程序)。如果您希望它在Web應用程序的上下文中運行,那麼存在許多缺陷,並且您會發現[如何在Scott Hanselman中運行ASP.NET中的後臺任務](http://www.hanselman.com/blog /HowToRunBackgroundTasksInASPNET.aspx)非常有用。 – mason

+0

我已經想過了,但是如何在這種情況下建立通知系統? –

回答

1

最好的,做這將是通過創建一個單獨的服務,而不是保持它的asp.net應用程序內的最有效的方式。

如果您仍然想在應用程序內部使用它,請瀏覽名爲WEBBACKGROUNDER的程序包以在後臺運行任務。

希望這有助於。

+0

thanx的迴應! –