为什么 InstanceContextMode.Single 服务在关闭时释放单一实例



我有一个 WCF (4.0) 服务,它被装饰为 InstanceContextMode.Single,实现该服务的类遵循 Singleton 模式。

我首先使用 Instance 属性创建服务实现的单一实例。然后我将这个单个实例传递给ServiceHost的构造函数,而不是使用带有typeof()参数的构造函数。

我可以在服务上做 Open(),然后我可以做 Close(),一切都很好。但显然在 Close() 上,它以某种方式处理了我的单例 (???),因为当我在同一服务主机上再次尝试 Open() 时,抛出了 ObjectDisposedException。

我的服务在 Windows 窗体应用程序中使用 NetTcpBInding 托管。

不支持重新打开同一服务主机。您需要创建新的服务主机。

ServiceHost 实现 ICommunicationObject 状态机。从了解状态更改:

当处于"已关闭"状态时,对象基本上已到达 状态机。一旦对象从一种状态转换到 接下来,它不会返回到以前的状态。

相关内容

  • 没有找到相关文章

最新更新