2012-07-16 32 views
0

我最近开始为一家新公司工作,现在正在开发一个Web应用程序(asp.net)。这个应用程序使用Global.asax来启动一个定时器,它将以给定的时间间隔做各种事情(发送电子邮件,设置数据库中的各种值等)Windows服务或Global.asax什么更合适?

他们现在想要的是有一些东西会叫第三第三方Web服务检索一些数据并在我们的最后更新数据库。我通常会在windows服务中完成上述所有操作。不过他们似乎很高兴在global.asax中有这种类型的东西。我打算创建一个新项目并开发这个新的功能作为一个Windows服务,但我应该打扰吗?也许我应该只是将此添加到global.asax?

我的问题是上述场景最适合/最好的方法是什么?

回答

2

使用外部服务是最佳选择。

  1. 在不与请求将取下来的进程相关联的线程未处理的异常。即使您通过Application_Error方法设置了处理程序,也会发生这种情况。

  2. 如果您在网上服务器场中运行您的网站,最终可能会有多个应用程序实例,它们都会尝试同时运行相同的任务。处理比第一个项目更具挑战性,但仍然不难。一种典型的方法是将所有服务器(如数据库)共有的资源用作协调任务的同步机制。

  3. 您的网站运行的AppDomain可能由于多种原因而停止运行,并使用它来取消后台任务。如果它发生在您的代码执行过程中,这可能会破坏数据。

欲了解更多信息:

相关问题