初始化计时器以在WCF服务主机中执行定期任务或者是否会影响托管服务的生命周期或性能是不是一个好主意?
我有一个自定义服务主机,在启动和停止时宣布它的可用性(目标是为客户创建一个注册表)。我想创建一个定时器来定期执行此操作,但我担心的是这会导致问题(我还没有遇到任何问题,但也许我没有强调它或其他东西)或者它可能会占用资源并导致性能下降的服务。当然,我们的想法是将计时器连接到OnOpened和OnClosing事件上。
值得一提的是,此服务托管在IIS中,因此IIS是实例化和管理服务主机的IIS。
答案 0 :(得分:0)
初始化计时器以在WCF中执行定期任务是一个好主意 服务主机或将与生命周期或性能混乱 托管的服务?
这取决于托管WCF服务的位置。如果它托管在IIS中,则可能存在问题。这是因为IIS可以随时决定回收ASP.NET应用程序池,并且您的计时器将停止工作。这不是你可以依赖的东西。另一方面,如果您在Windows服务自托管主机中托管了WCF服务,则可以使用计时器。您可以查看following blog post
关于在ASP.NET主机中实现重复后台任务的危险。