gpt4 book ai didi

c# - 如何在代码后面检查端口当前是否与 IIS7 (webSite) 一起使用?

转载 作者:行者123 更新时间:2023-11-30 15:01:27 24 4
gpt4 key购买 nike

我开发了一个程序“安装程序”,它将在 IIS 上添加和配置一个新网站。我的问题是我想在安装前检查用户提供的端口是否已被另一个站点使用。

我的项目是C# WinForm风格的。有人有想法吗?

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

最佳答案

检查这个:

BindingInformation Property : 获取或设置当前绑定(bind)的绑定(bind)信息。

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

例如,为端口 80 上的所有 IP 地址设置且没有指定主机名的绑定(bind)会从此属性返回“:80:”。在端口 8080 上为 IP 地址 192.168.1.150 设置的绑定(bind)返回“192.168.1.150:8080:”。为名为“microsoft.com”的主机的端口 80 上的所有 IP 地址设置的绑定(bind)返回“:80:microsoft.com”。

BindingInformation 属性值在 ApplicationHost.config 文件中维护。

另外,你可以检查这个: Get IIS bindings at runtime

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);
}
}
}

关于c# - 如何在代码后面检查端口当前是否与 IIS7 (webSite) 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14194394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com