【发布时间】:2011-09-22 07:54:36
【问题描述】:
我们有将由安装程序安装的 Windows 服务。我们有一个选项允许用户提供端口号并选择服务是否必须在安装完成后启动。我们正在检查安装程序本身以检查端口是否打开/可用。
TcpClient TcpScan = new TcpClient();
TcpScan.Connect("localhost", portno);
if (TcpScan.Connected == true)
{
TcpScan.Close();
}
我的问题是,如果用户选择在安装时不启动服务的选项,然后我们在同一台机器上安装另一个实例,其端口与第一个实例中使用的相同,那么如果我们同时启动这两个服务,那么其中一个该服务将不起作用。
那么有什么方法可以检查用户提供的端口是否已经存在于防火墙中或是否已分配给其他一些 Windows 服务? (同时假设服务可以处于停止状态)
【问题讨论】:
标签: c# windows-services port