调试停止Windows服务

时间:2012-06-29 09:18:37

标签: c# .net wcf windows-services

我正在调试VS2010中的Windows服务:

static void Main()
{
    #if (DEBUG)
        var s1 = new Service1();
        s1.Start();
        Thread.Sleep(Timeout.Infinite);
    #else
        ServiceBase.Run(new ServiceBase[] 
            { 
                new Service1() 
            });
    #endif
}

这使我可以在调试器中运行该服务。问题是,在启动时,服务会打开一个WCF通道,在通过停止调试来终止进程后,它似乎占用了一个套接字。当我停止调试或服务停止时,如何关闭此套接字。我尝试在服务析构函数中设置断点,以及OnStopOnShutdown方法,但这些方法都没有被调用。

1 个答案:

答案 0 :(得分:1)

据我所知,当您在Visual Studio中结束调试时,只是在没有调用终结器的情况下终止该过程,甚至不会执行位于finally块的代码。