Windows服务中托管的WCF服务

时间:2011-12-05 13:29:32

标签: wcf windows-services

我在Windows服务中托管了WCF服务。当用户修改WCF服务配置时,他需要重新启动服务。

我想知道使用

重新启动Windows服务是否更好
serviceController.stop() 
servicecontroller.start()

或者每次要重新启动时创建WCF客户端的新实例。如果创建了WCF客户端的新实例,则不会丢失任何信息。

1 个答案:

答案 0 :(得分:2)

在继承自System.ServiceProcess.ServiceBase

的服务容器中

你应该在方法

中开始服务
protected override void OnStart(string[] args)
{
  servicecontroller.start()
}

并在方法

中停止您的服务
protected override void OnStop()
{
    //here clean up code or any tear-down necessary to stop your service.
  serviceController.stop() 
 }

因此,当您从服务托盘启动/停止Windows服务时,会自动调用这些方法。

正如其他人所说,creating a new instance of the WCF client every time对您的服务没有影响