我正在使用Installshield 2013创建安装程序。
此安装程序将有一个对话框,允许用户为将要安装的Web应用程序输入自定义端口号。但是,我想验证此端口号是否已被IIS中的现有网站使用。 installshield是否具有执行此操作的内置功能?或者我是否需要创建一个查询IIS元数据库的自定义操作。
答案 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中,因此您必须编写验证自定义操作。