Я пытаюсь программно создать виртуальный каталог в IIS, используя C #
Вот пример кода
DirectoryEntry iisVDir = new DirectoryEntry("IIS://localhost/W3SVC/1/Root/main");
DirectoryEntry configVDir = iisVDir.Children.Add("config", "IIsWebVirtualDir");
configVDir.CommitChanges();
Однако при запуске кода я получаю следующую ошибку во второй строке
Exception from HRESULT: 0x8000500F
Однако, когда я пытаюсь повторить код, но при создании виртуального каталога в папке Root , в отличие от Root / main , это работает. main папка существует, и я могу вручную добавить в нее виртуальный каталог через консоль управления IIS в Windows.
Когда я запускал код через отладчик, я заметил, что iisVDir DirectoryEntry имеет имя_схемы_класса IISObject , а не IISWebDirectory , как и следовало ожидать. Я повторил приведенный выше код для другой существующей папки, которая была IISWebDirectory , а не IISObject , и она работала.
Я знаю, что вы можете изменить IISWebDirectory на IIsWebVirtualDir , но вы можете изменить IISObject на IISWebDirectory ?
Я использую IIS 5.1 в Windows XP.
РЕДАКТИРОВАТЬ: я воссоздал, как была настроена «основная» папка.
- В проводнике Windows создайте новую папку с именем maintest , например, в папке C: \ inetpub \ wwwroot
- В консоли управления IIS перейдите к этой новой папке, щелкните ее правой кнопкой мыши, чтобы вызвать контекстное меню, и создайте в ней новый виртуальный каталог, например, под названием config (я указал на C: \ Temp в моем случае)
- При попытке создать виртуальный каталог в новой папке maintest , однако, используя приведенный выше пример кода, папка maintest выглядит как IISObject
Так, может быть, это IISObject, но как мне создать виртуальный каталог под ним программно?