我已经用C#.NET编写了一个Windows服务。此Windows服务包含一个WCF服务。然后,我在Windows服务的OnStart中使用一个新的ServiceHost来监听WCF服务的消息。然后关闭OnStop中的ServiceHost。当Windows服务停止时,WCF服务仍然可以调用
当服务运行时,我可以调用WCF服务就好了。但是,我然后停止服务,但仍可以调用WCF服务。我并没有想到会发生这种情况。到底是怎么回事?
的OnStart和调用OnStop代码如下
protected override void OnStart(string[] args)
{
if (serviceHost != null)
{
serviceHost.Close();
}
serviceHost = new ServiceHost(typeof(MyService));
// Open the ServiceHostBase to create listeners and start
// listening for messages.
serviceHost.Open();
}
protected override void OnStop()
{
if (serviceHost != null)
{
serviceHost.Close();
serviceHost = null;
}
}
请给我们一些onstop/onstart代码示例。 – Nix 2011-06-02 12:11:22
不能。无论你在代码中写什么都没关系。如果您关闭了Windows服务,则WCF服务不会侦听。我建议你重新检查你的测试。 – Gilad 2011-06-02 12:15:20
我想知道是否OnStop甚至被称为BC,我同意@Gilad – Nix 2011-06-02 12:19:43