zoukankan      html  css  js  c++  java
  • C# Append a host header to a website in IIS by code

    The following example adds a host header to a website in IIS. This involves changing the ServerBindings property. There is no Append method that can be used to append a new serverbinding to this property, so what needs to be done is read the entire property and then add it back again, together with the new data. This is what is done in the code below. The ServerBindings property's data type is MULTISZ, and the string format is IP:Port:Hostname.

    Note that this example code does not do any error checking. It is important that every ServerBindings entry is unique, and you - the programmer - is responsible for checking this (which means that you need to loop thru all entries and check if what is about to be added is unique).

        using System.DirectoryServices;
        using System;
        
        public class IISAdmin
        {
           /// <summary>
           /// Adds a host header value to a specified website. WARNING: NO ERROR CHECKING IS PERFORMED IN THIS EXAMPLE.
           /// YOU ARE RESPONSIBLE FOR THAT EVERY ENTRY IS UNIQUE
           /// </summary>
          /// <param name="hostHeader">The host header. Must be in the form IP:Port:Hostname </param>
          /// <param name="websiteID">The ID of the website the host header should be added to </param>
          public static void AddHostHeader(string hostHeader, string websiteID)
          {
             
             DirectoryEntry site = new DirectoryEntry("IIS://localhost/w3svc/" + websiteID );
             try
             {                  
                //Get everything currently in the serverbindings propery.
                PropertyValueCollection serverBindings = site.Properties["ServerBindings"];
                
                //Add the new binding
                serverBindings.Add(hostHeader);
                
                //Create an object array and copy the content to this array
                Object [] newList = new Object[serverBindings.Count];
                serverBindings.CopyTo(newList, 0);
                
                //Write to metabase
                site.Properties["ServerBindings"].Value = newList;         
                         
                //Commit the changes
                site.CommitChanges();
                         
             }
             catch (Exception e)
             {
                Console.WriteLine(e);
             }
             
          }
       }
       
       public class TestApp
       {
          public static void Main(string[] args)
          {
             IISAdmin.AddHostHeader(":80:test.com", "1");
          }
       }
  • 相关阅读:
    【odoo14】【好书学习】第一章、安装odoo的开发环境
    echarts 根据geojson 数据绘制区域图(精确到镇)
    百度地图 获取具体位置经纬度
    js 实时监听滚动条状态 判断滚动条位置
    vue cli3 使用elemet-plus
    关于vue告警 More than 1 blank line not allowed
    vue cli3 创建项目
    intelliJ idea 自动修复eslint语法问题
    函数式编程
    二分法
  • 原文地址:https://www.cnblogs.com/top5/p/1455838.html
Copyright © 2011-2022 走看看