如何检查端口是否在代码后面与IIS7(网站)一起使用

本文关键字:IIS7 网站 一起 检查 何检查 是否 代码 | 更新日期: 2023-09-27 17:50:49

我开发了一个程序"安装程序",可以在IIS上添加和配置一个新网站。我的问题是我想在安装之前检查用户提供的端口是否已被其他站点使用。

我的项目是在c# WinForm风格。有人有主意吗?

string[] lPorts = System.IO.Ports.SerialPort.GetPortNames(); ?

如何检查端口是否在代码后面与IIS7(网站)一起使用

检查这个:

BindingInformation属性:获取或设置当前绑定的绑定信息。

此属性的值是一个冒号分隔的字符串,其中包括绑定的IP地址、端口和主机名。您可以将主机名留空。您可以将IP地址设置为"*",表示该绑定适用于所有变量。

例如,为端口80上的所有IP地址设置且没有指定主机名的绑定将从该属性返回":80:"。在端口8080上为IP地址192.168.1.150设置的绑定返回"192.168.1.150:8080:"。为名为"microsoft.com"的主机在端口80上的所有IP地址设置绑定返回":80:microsoft.com"。

BindingInformation属性值在ApplicationHost中维护。配置文件。

foreach (Microsoft.Web.Administration.ConfigurationElement binding in mySite.GetCollection("bindings"))
        {
            string protocol = (string)binding["protocol"];
            string bindingInfo = (string)binding["bindingInformation"];
            if (protocol.StartsWith("http", StringComparison.OrdinalIgnoreCase))
            {
                string[] parts = bindingInfo.Split(':');
                if (parts.Length == 3)
                {
                    //Get the port in use HERE !!!
                    string port = parts[1];
                    yield return new KeyValuePair<string, string>(protocol, port);
                }
            }
        }

你应该看看Microsoft.Web.Administration名称空间

您应该使用ServerManager.Sites来获取站点列表。看看每个站点上的集合绑定。每个站点可以有一个或多个绑定,也就是说,它可以通过一个或多个地址/端口访问。

上面的代码查找在usb之前用于连接调制解调器和打印机的物理串行端口。

希望这对你有帮助!

不确定你是否在寻找c#,但如果你需要powershell,在这里你可以…

打开PowerShell,输入如下命令:import-module webadministrationget-webbinding