Installshield - 检测正在使用的现有网站端口

时间:2015-01-14 08:34:23

标签: installshield

我正在使用Installshield 2013创建安装程序。

此安装程序将有一个对话框,允许用户为将要安装的Web应用程序输入自定义端口号。但是,我想验证此端口号是否已被IIS中的现有网站使用。 installshield是否具有执行此操作的内置功能?或者我是否需要创建一个查询IIS元数据库的自定义操作。

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码编写自定义操作:

            // Check if port is in use.
            var ip = System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties();
            var listeners = ip.GetActiveTcpListeners();
            foreach (var listener in listeners)
            {
                if (listener.Port == port)
                {
                    message = string.Format("Please specify another port number. {0} is already in use.", port);
                    break;
                }
            }

答案 1 :(得分:0)

比那更复杂。 IIS使用HTTP.sys,如果绑定指定唯一的主机头,则多个网站实际上可以共享一个点。这里没有内置到InstallShield中,因此您必须编写验证自定义操作。