estoy tratando de obtener la lista de tipos de mime conocidos por un servidor IIS (which you can see was asked and and answered by me 2 years ago). La respuesta de copia pegada implica:IIS: ¿cómo obtener la ruta de metabase?
GetObject("IIS://LocalHost/MimeMap")
msdn
GetObject("IIS://localhost/mimemap")
KB246068
GetObject("IIS://localhost/MimeMap")
Scott Hanselman's Blog
new DirectoryEntry("IIS://Localhost/MimeMap"))
Stack Overflow
new DirectoryEntry("IIS://Localhost/MimeMap"))
Stack Overflow
New DirectoryServices.DirectoryEntry("IIS://localhost/MimeMap")
Velocity Reviews
se entiende la idea. Todos están de acuerdo en que utilizas una ruta mágica iis: // localhost/mimemap. Y esto funciona muy bien, excepto en los momentos en que no funciona.
La única pista que puedo encontrar en cuanto a por qué no funciona, is from an IIS MVP, Chris Crowe's, blog:
string ServerName = "LocalHost";
string MetabasePath = "IIS://" + ServerName + "/MimeMap";
// Note: This could also be something like
// string MetabasePath = "IIS://" + ServerName + "/w3svc/1/root";
DirectoryEntry MimeMap = new DirectoryEntry(MetabasePath);
Hay dos pistas aquí:
iis://localhost/mimemap
él llama la Ruta de la metabase . Lo cual me parece que es una especie de "ruta" a una "metabase metabase".- Dice que la ruta a metabase podría ser otra cosa; y él da un ejemplo de cómo podría ser.
Ahora mismo, y todo el planeta, están codificando el "Metabasepath" como
iis://localhost/MimeMap
Lo que debería ser realmente? ¿Qué debería hacer el código para construir un MetabasePath válido?
Nota: Hasta ahora no recibo un error de acceso denegado, el error es el mismo cuando se tiene una Metabasepath no válido, por ejemplo, iis://localhost/SoTiredOfThis
No está claro a partir de la pregunta, ¿recibe una excepción de seguridad? – Kev
No es una excepción de seguridad. La llamada a 'DirectoryEntry (MetabasePath)' regresa bien y devuelve un objeto. El error viene después cuando intenta acceder a cualquiera de las propiedades devueltas del objeto 'DirectoryEntry'. Todos dan un error COM "no especificado". Esto sucede cuando la ruta no es válida, p. "' iis: // localhost/asdfadsf' " –
@Ian - mira la actualización de mi respuesta. – Kev