Если вы работаете с конфигурацией IIS вашего локального компьютера, т.е. ваш код и IIS находятся в одном окне, то достаточно указать:
IIS://Localhost/mimemap
Часть IIS:
на языке OLE также называется прозвищем.
Если вы откроете файл метабазы IIS6 (C:\Windows\System32\inetsrv\metabase.xml
), вы увидите большой «блоб» XML. На самом деле это уплощенная древовидная структура.
Пути в метабазе представлены Location
атрибутами.
Имя IIS://localhost
отображается на путь Location
/LM
, который фактически является корнем дерева.
Имя IIS://localhost/MimeMap
отображается на путь Location
/LM/MimeMap
.
Если ваш код обращается к метабазе на удаленных машинах, тогда вместо указания IIS://localhost/[path]
можно указать IIS://[RemoteMachineName]/[path]
. Вот что означает комментарий Криса Кроуза.
IIS://localhost/MimeMap
также является основным списком Mime Type. Все сайты наследуют этот список (метабаза IIS сильно зависит от унаследованных свойств).
Если вы хотите переопределить типы Mime для определенного сайта, измените:
IIS://localhost/W3SVC/[iisnumber]/ROOT/MimeMap
Полезно открыть файл метабазы IIS и покопаться, чтобы понять, что происходит под капотом.
Обновление:
Чтобы ответить на ваш вопрос о том, почему вы можете создать объект DirectoryEntry
, путь которого неверен, DirectoryEntry
- это объект-оболочка общего назначения, используемый для привязки к различным типам поставщиков ADSI, таким как IIS, LDAP и WinNT. Это позволяет создавать DirectoryEntry
объектов, где не обязательно может быть соответствующий объект по указанному пути. Некоторые операции поставщика ADSI могут требовать этой возможности.
В DirectoryEntry
есть статический метод, называемый Exists
, который вы можете использовать для проверки существования объектов. Например:
// Does Default Website exist?
if(DirectoryEntry.Exists("IIS://localhost/w3svc/1"))
{
// Do work...
}