多次打开关闭ServiceHost

时间:2011-10-06 01:54:07

标签: c# wcf

我试图弄清楚如何在自托管WCF应用中多次打开和关闭ServiceHost对象:

我做了什么: 1.创建ServiceHost对象

  1. 致电Open()
  2. 呼叫已关闭() 到目前为止一直很好。
  3. 再次调用Open(),异常:无法访问已处置的对象,这是因为处理了CommunicationObject,这非常有意义。
  4. 在这种情况下,如何在不重新创建该对象的情况下再次打开ServiceHost(相反,如果可能的话,我会重新创建CommunicationObject。)

    提前致谢。

2 个答案:

答案 0 :(得分:7)

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

CommunicationState state machine

  

每个对象都以Created状态开始,然后以单向继续   通过开放,开放,结束和关闭状态的进展。

答案 1 :(得分:0)

我不确定你的最终目标是什么,但请看一下这篇文章。 http://www.codeproject.com/KB/WCF/generic_wcf_host.aspx 如果这不是你试图去皮的问题,那么也许你正在寻找一些技术和应用领域?