Я столкнулся со странной проблемой в IIS 7.0:
У меня есть следующий виртуальный каталог в IIS:
и только режим проверки подлинности Windows включен для виртуального каталога в IIS
Теперь, если я попытаюсь получить связанный DirectoryEntry для TestV / Folder / file.aspx следующим образом:
string vDir = @"/TestV/folder/file.aspx";
DirectoryEntry dir = new DirectoryEntry("IIS://" + serverName + "/W3SVC/1/ROOT" + vDir, @"adminusername", @"password");
dir.AuthenticationType = AuthenticationTypes.Secure;
try
{
Console.WriteLine(dir.Name);
}
catch (Exception exp)
{
Console.WriteLine(exp.Message);
}
Console.WriteLine("");
Получаю исключение: «Система не может найти указанный путь»
Теперь, если я вернусь в IIS, а затем выполню следующие шаги: щелкните правой кнопкой мыши TestV / Folder и включите режим анонимной проверки подлинности, а затем снова отключите его
Щелкните правой кнопкой мыши TestV / Folder / file.aspx и включите режим анонимной аутентификации, а затем снова отключите его
По сути, я просто выполнил ручной доступ к aspx-файлу Testv / Folder / file.aspx.
После вышеуказанных шагов, если я повторно запускаю программу, код успешно получает доступ к записи каталога и успешно печатает имя (file.aspx)
В чем проблема?
Еще одна информация:
Я также наблюдаю такое поведение в IIS 6.0. Таким образом, похоже, что до тех пор, пока я не выполню какую-либо ручную операцию в IIS для папки / файла в виртуальном каталоге, они не создадут соответствующие метаданные в активном каталоге?