Web セットアップ プロジェクトやカスタム アクションなどの使用方法に関する記事をたくさん読みましたが、「既定のサイト」の下にない IIS で新しい Web サイトを作成する方法を説明しているようには見えません。
私は現在、記事の1つから適応された次のコーディングを持っています:
private const string MetaBasePath = "IIS://Localhost/W3SVC";
次のメソッドは、Install メソッド中に呼び出されます。
private void CreateWebsite()
{
DirectoryEntry IISWebSites = new DirectoryEntry(MetaBasePath);
DirectoryEntries sites = IISWebSites.Children;
DirectoryEntry TestAppWebSite = sites.Add("TestWebApp", (IISWebSites.SchemaClassName.Replace("Service", "Server")));
TestAppWebSite.Properties["ServerComment"][0] = "Testing";
TestAppWebSite.CommitChanges();
}
これにより、Web サイトが作成されるように見えますが、「既定のサイト」の下にあります。「MetaBasePath」は、Web サイトが現在存在するかどうかを確認する別の方法でも使用されるため、正しく定義されていると確信しています。このメソッドは、「MetaBasePath」の子を調べて、それぞれのプロパティをチェックします。このコードを実行したところ、表示されるはずの Web サイトが引き戻されたので、そのパスから正しい情報を取得していることがわかります。
私は何が欠けていますか?
アップデート
名前ではなくサイト ID を使用すると、「既定のサイト」以外に新しいサイトを作成できるようです。