程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 通過代碼給IIS增加主機頭

通過代碼給IIS增加主機頭

編輯:.NET實例教程

    看了一醉解千愁的修改IIS目錄的ASP.Net版本之後,想到以前想過要通過代碼給IIS增加主機頭,卻一直沒去研究,今天趁著興趣,決定把這個問題解決了。
     對於Blog網站,如果需要為用戶提供二級域名支持,而Web程序不是運行默認站點中,就需要在用戶注冊時通過代碼給IIS增加相應的主機頭。
     這個問題是通過Google搜索到Append a host header by code in IIS解決的,經過測試,確認方法可行並對代碼進行了一些改進後,考慮到這個內容會給一些朋友帶來幫助,於是就寫了這篇文章。
     代碼如下:
             static void Main(string[] args)
        {
            AddHostHeader(1, null, 80, "test.cnblogs.com");        
        }

        static void AddHostHeader(int siteid,string ip, int port, string domain)
        {
            DirectoryEntry site = new DirectoryEntry("IIS://localhost/W3SVC/"+siteid);
            PropertyValueCollection serverBindings = site.PropertIEs["ServerBindings"];
            string headerStr = string.Format("{0}:{1}:{2}",ip,port,domain);
            if (!serverBindings.Contains(headerStr))
            {
                serverBindings.Add(headerStr);
            }
            site.CommitChanges();
        }
     在找到Append a host header by code in IIS之前,我通過下面的代碼沒找到"ServerBindings"屬性,走了一些彎路。

DirectoryEntry site = new DirectoryEntry("IIS://localhost/W3SVC/1/root");
     代碼很簡單,需要說明的是siteid,默認站點是1,對於非默認站點,通過查看站點日志文件名就可以知道。

        
出處:dudu-快樂程序員

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved