次のコードを実行します。
DirectoryEntry w3svc = new DirectoryEntry("IIS://localhost/w3svc");
int siteId = GetUniqueSiteId(Path);
private string DEFAULT_WEB_SITE_PHYSICAL_PATH = System.IO.Path.GetPathRoot(Environment.SystemDirectory) + @"inetpub\wwwroot";
object[] newsite = new object[] { "Default Web Site", new object[] { ":80:" }, DEFAULT_WEB_SITE_PHYSICAL_PATH, siteId };
w3svc.Invoke("CreateNewSite", newsite);
次の例外をスローします。
System.Reflection.TargetInvocationException: 呼び出しのターゲットによって例外がスローされました。---> System.Runtime.InteropServices.COMException (0x800700B7): ファイルが既に存在する場合、ファイルを作成できません。(HRESULT からの例外: 0x800700B7)
「既定の Web サイト」が存在しない場合にのみ、このコードを実行しようとしています。この例外は、Windows Server 2003 で実行している場合にのみ発生します。さらに、このコードを再試行し、失敗するたびに 1 秒間スリープするループで実行すると、そのコードは 3 回の再試行後に最終的に機能し、既定の Web サイトが作成されます。
何が原因かわかる方いますか?