如何自动启动C#WebService?

han*_*ock 8 .net wcf web-services windows-services

我写了一个C#WebService.问题是,在我将其发布到IIS后,除非调用任何方法,否则它不会自动启动.这非常令人沮丧,因为这个WebService必须在它启动后立即继续做一些后台工作(它的构造函数执行).如果IIS重新启动,WebService将只是闲置,直到调用其中一个方法.有没有办法克服这个问题并强制WebService在发布或重新启动IIS后立即执行其构造函数?

Ash*_*pta 10

如果它必须在启动后立即继续做一些后台工作,为什么不在Windows服务中实现它?我认为您可以编写将在Windows服务中托管的WCF服务.这样客户端仍然可以调用您的服务,该服务可以执行其后台工作并且不依赖于IIS,因为主机窗口服务将在其自己的进程上运行.

  • Ashish:你对在Windows服务中托管WCF服务的选择是正确的,但这可能不应该是首选.在IIS中托管可以获得挂钩IIS应用程序池管理工具,故障转移,应用程序池重启等优势 - 如果您自行托管,您必须自己实施的所有事情.在许多情况下,最佳体系结构是在IIS中托管并处理请求的WCF服务,与执行后台处理的Windows服务协作.当然,这在很大程度上取决于应用程序.自托管服务也很有用! (3认同)