Windows服务VS Web进程

时间:2012-05-25 17:05:53

标签: c# iis windows-services

我在这里创建了一个消息Queue,它基本上是在一个线程上,从数据库中一个接一个地发送电子邮件。首先我认为,因为它是一个连续的过程,它必须在Windows服务上,它听起来像一个理想的解决方案,但不是我与我的经理谈过,他说,如果它在同一个存储库中会更好整个项目,如果我加入一段时间(真实)声明。这样在部署到生产时,我们不需要担心安装任何Windows服务或任何东西。但我认为,如果我们这样做,那么Web服务器上会有很多不必要的压力。

我不知道该走哪条路。有什么建议吗?

3 个答案:

答案 0 :(得分:3)

我会使用单独的Windows服务。
由于此服务是您的应用程序的一方,它的生命周期取决于应用程序池进程的生命周期(当然,取决于您使用的IIS的版本),这样每当您选择时更改应用程序池设置,您将不得不记住您的消息作业也依赖于它,如果您为应用程序池设置任何回收设置,您可能很难理解为什么您的工作突然停止工作或类似的事情。

答案 1 :(得分:3)

我肯定会建议在后台处理电子邮件队列的Windows服务。以下是您可以向经理建议的一些要点:

  1. 该服务可以与另一个项目保存在同一个存储库中。
  2. 安装和升级服务非常简单。使用installutil并将批处理文件添加到项目中以进行安装/卸载。升级是停止服务,更新服务.exe以及再次启动服务的问题。
  3. 所有这些在技术上都可以自动化,也可以作为部署过程的一部分。

答案 2 :(得分:0)

您还可以简单地编写命令行应用程序,然后使用Service +之类的东西将其包装起来,使其行为像服务一样。您还可以获得其他功能,例如,如果您愿意,可以像命令行应用程序一样运行它(无论何时您想要运行它),或者根据需要从其他应用程序启动/执行它。您也可以构建各种行为......连续模式,可能一次处理1(或100或其他)然后退出(并让Service +重新启动它),或者您可能需要的任何其他行为。

相关问题