Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多次打开或关闭ServiceHost_C#_Wcf - Fatal编程技术网

C# 多次打开或关闭ServiceHost

C# 多次打开或关闭ServiceHost,c#,wcf,C#,Wcf,我正在尝试找出如何在自托管WCF应用程序中多次打开和关闭ServiceHost对象: 我所做的: 1.创建ServiceHost对象 调用Open() 通话结束() 到目前为止还不错 再次调用Open(),异常:无法访问已释放的对象,这是因为已释放了CommunicationObject,这非常有意义 在这种情况下,如何在不重新创建该对象的情况下再次打开ServiceHost(如果可能的话,我会重新创建CommunicationObject) 提前感谢。继承自CommunicationObjec

我正在尝试找出如何在自托管WCF应用程序中多次打开和关闭ServiceHost对象:

我所做的: 1.创建ServiceHost对象

  • 调用Open()
  • 通话结束() 到目前为止还不错
  • 再次调用Open(),异常:无法访问已释放的对象,这是因为已释放了CommunicationObject,这非常有意义
  • 在这种情况下,如何在不重新创建该对象的情况下再次打开ServiceHost(如果可能的话,我会重新创建CommunicationObject)

    提前感谢。

    继承自CommunicationObject。ServiceHost是引发异常的通信对象。通信对象一旦关闭,就无法重新打开。您必须创建一个新的ServiceHost

    委员会:

    每个对象都以创建状态开始,并以单向方式进行 在打开、打开、关闭和关闭状态中前进


    我不确定你的最终目标是什么,但看看这篇文章。
    如果这不是您要解决的问题,那么您可能正在寻找一些技术和应用程序域?

    为什么需要关闭服务主机,然后再次打开它?为什么不愿意创建服务主机的另一个实例?因为在应用程序生命周期内,我想根据它所处的模式来控制servicehose。当然,该应用程序还有其他事情要做,wcf服务只是其中的一部分。对我来说,似乎只有CommunicationObject出现故障没有理由重新创建整个servicehost,因为servicehost继承自ServiceHostBase,对我来说,CommunicationObject是组合而不是继承。而ServeHostBase父对象是System.ServiceModel.Channels.CommunicationObject,因此它不是成员