ASP.NET应用程序中的驻留逻辑

时间:2011-03-24 14:32:51

标签: asp.net twitter

我有一个ASP.NET网站(基于blogengine.net的博客)。

我想与Twitter进行整合。

我需要一些逻辑,不断检查,我是否发布了新的twits,如果我这样做,将在我的网站上创建一个相同的博客文章。

这需要在单独的线程中持续激活检查器对象。我应该在哪里放置我的类的实例化,以便它们在ASP.NET网站在IIS中工作时是活动的?我在哪里将逻辑链接到我的Web应用程序?

谢谢。

1 个答案:

答案 0 :(得分:1)

正在进行的进程不应该属于ASP .NET应用程序本身的范围。 ASP .NET应用程序更像是一个请求/响应系统,而不是一个进程调度程序。对于轮询外部服务并更新数据的持续任务,更好的选择是:

  • Windows服务
  • 使用某个任务计划程序(例如本机Windows计划程序)安排的控制台应用程序

这样做的一个重要原因是您从未真正知道您的ASP .NET应用程序是否“正在运行”。由于IIS的自由裁量权,它可以在应用程序池中循环使用,有多种原因。 (这也是为什么把事情放在应用程序启动事件中是一个谨慎的活动,因为在调用它时它并不总是已知或直观。)如果IIS在管理资源时认为有必要,应用程序甚至可以“关闭”。哪一点你的单独线程会发生什么?

理想情况下,在这种情况下,您将拥有的是由数据库支持的ASP .NET应用程序。然后你会有一个单独的应用程序(如上所述)更新同一个数据库。两人无需了解彼此。