2016-07-22 46 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的回应! –