2012-02-11 20 views
2

IIS7で動作しているWebアプリケーション(asp.net 4.0/C#)を使用してWebサイトにホストヘッダーを追加したいのですが、私はそれらのほとんどがiis7で仕事をしないと思う。 (注:私は、IISの設定を変更しながら、セキュリティ上の問題があると文句を言わないと思いますので、Webアプリケーションは、同じサーバにホストされている)IIS 7のWebサイトにプログラムでホストヘッダーを追加する

すべてのヘルプは高く評価され、感謝

+0

この質問はあなたを助けるかもしれないしなければならなかったhttp://stackoverflow.com/questions/5121383/iis-7-0-vs-7-5-site-microsoft-web-administration-site -bindingcollection –

+0

私はあなたが十分明確ではないと思います。詳細をお知らせください。バインディングを追加/変更しますか? – Tomek

答えて

2

私はこの解決策を見つけ、それが私の作品これはいくつかのパラメータを持つちょっとした関数です。ちょうどissコンフィグレーションでyourwebsiteのidを見つけなければなりません。サーバのIPアドレス(iis)とポート番号とホスト名を関数に渡す必要があります。入力したパラメータを使用してホストヘッダーを追加します。たとえば、

AddHostHeader(2、 "127.0.0.1:81" 81、 "newsHostHeader");

static void AddHostHeader(int? websiteID, string ipAddress, int? port, string hostname) 
    { 
     using (var directoryEntry = new DirectoryEntry("IIS://localhost/w3svc/" + websiteID.ToString())) 
     { 
      var bindings = directoryEntry.Properties["ServerBindings"]; 
      var header = string.Format("{0}:{1}:{2}", ipAddress, port, hostname); 
      if (bindings.Contains(header)) 
       throw new InvalidOperationException("Host Header already exists!"); 
      bindings.Add(header); 
      directoryEntry.CommitChanges(); 
     } 
    } 

(注: System.DirectoryServicesを使用してページに追加することを忘れないでください。Microsoft.Web.Administrationを使用して;)

+0

がSystem.DirectoryServices.DirectoryEntry.BindでスローアップするWindows 8のIIS 7.5の のSystem.Runtime.InteropServices.COMExceptionが発生した –

+0

資格情報の設定を確認する必要がありますか?IUSRユーザーがWebサイトにヘッダーを追加できないようですあなたのIISで。 – slayer35

+0

エラー...最終的にはこれを使って完了しました http://www.iis.net/configreference/system.applicationhost/sites/site/bindings/binding –

関連する問題