我是 WCF 的初学者。我需要在我的服务中监听特定端口。托管服务(作为 Windows 服务)时应启动侦听。它应该在服务停止时停止。
我已经设法在简单的控制台应用程序中实现无限循环的监听。
有没有办法在服务中做到这一点?
这应该不是问题,您只需要将它作为 Windows 服务托管。端口应定义为端点地址的一部分。有关更多信息,请点击此链接http://msdn.microsoft.com/en-us/library/ms733069(v=vs.90).aspx
在服务启动时创建一个执行端口侦听的线程,假设我假设您知道如何进行端口侦听。然后在服务结束时调用监听线程的 Thread.Abort 方法。请记住在线程中捕获 ThreadAbortException,因为当线程被杀死时会引发此异常。您需要在此处进行清理,例如关闭端口和任何流读取器/写入器。