更改“默认网站”的http端口

时间:2011-05-23 19:07:28

标签: c# iis-7

我正在使用Microsoft.Web.Adminsitration程序集来创建应用程序池和网站。

参考:

  

Microsoft.Web.Administration in IIS 7

此自定义网站应具有用于http通信的端口80。由于“默认网站”默认也使用端口80,我需要以编程方式将其更改为另一个端口(例如90)。有没有办法以编程方式执行此操作?

2 个答案:

答案 0 :(得分:3)

以下是将默认网站上的现有端口80 http绑定更改为端口90的示例代码片段:

int iisNumber = 1; // Default Website is IIS#1
using(ServerManager serverManager = new ServerManager())
{
  Site site = serverManager.Sites.FirstOrDefault(s => s.Id == iisNumber);
  if(site != null)
  {
    Binding binding = site.Bindings
        .Where(b => b.BindingInformation == "*:80:" && b.Protocol == "http")
        .FirstOrDefault();

    binding.BindingInformation = "*:90:";

    serverManager.CommitChanges();
    Console.WriteLine("");
  }
}

BindingInformation字段是由以下内容组成的字符串:

<ip address>:<port>:<host header>

例如:

  • *:80: - 侦听所有IP地址,端口80,无主机头
  • *:90:example.com - 侦听所有IP地址,端口80但是如果主机标头匹配example.com
  • 则会响应
  • 172.16.3.1:80:example.com - 侦听IP地址172.16.3.1,端口80以及主机标头是example.com

答案 1 :(得分:0)

您提到的博文中的第二行“创建网站”向您展示了如何...

iisManager.Sites.Add("NewSite", "http", "*:8080:", "d:\\MySite");

参数*:8080表示网站应该在端口8080 上侦听绑定到计算机的所有IP地址。只需将8080更改为您想要的端口即可。

仅供参考,8080是网站的传统“离港”位置。请记住,您不希望与使用端口的其他服务冲突。您可以在此处查看保留/注册端口列表:http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers