我在 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 通道,在我通过停止调试终止进程后,该通道似乎占用了一个套接字。当我停止调试或服务停止时,如何关闭此套接字。我尝试在服务析构函数以及OnStop
andOnShutdown
方法中设置断点,但这些都没有被调用。