Microsoft.Web.Administration.ServerManager クラスを使用して Web サイトのポートを設定する方法を教えてください。
まず、Web サイトを取得します。
Site site = this._serverManager.Sites[section.WebsiteName];
次に、渡した設定からポートを設定しようとします。
foreach (Binding b in from binding in site.Bindings.Where(b => b != null && b.EndPoint != null)
select binding)
{
b.EndPoint.Port = Int32.Parse(section.Port);
Console.WriteLine(b.EndPoint.Port);
} this._serverManager.CommitChanges();
そこに writeline を入れてチェックしましたが、ポートが変更されないのはなぜですか? ここに来る前に確認したので、ウェブサイトが有効であることはすでに知っています。
Binding binding = site.Bindings.CreateElement();
binding.BindingInformation = String.Format("{2}:{0}:{1}", section.Port,b.Host, b.EndPoint.Address);
//b.EndPoint.Port = Int32.Parse(section.Port);
site.Bindings.Add(binding);
上記を試してみたところ、GetAttributeValue に関する COMException が発生しました。
私がしなければならなかった以下の答えのおかげで、ついにそれを手に入れました:
b.BindingInformation = String.Format("{2}:{0}:{1}", section.Port, b.Host, b.EndPoint.Address);