IIS: Comment obtenir le chemin de la Métabase?

je vais essayer d'obtenir la liste des types mime connu à un serveur IIS (vous pouvez les voir a demandé et et a répondu par moi il y a 2 ans). Le copier-collé réponse implique:

GetObject("IIS://LocalHost/MimeMap") msdn

GetObject("IIS://localhost/mimemap") KB246068

GetObject("IIS://localhost/MimeMap") Scott, Hanselman Blog

new DirectoryEntry("IIS://Localhost/MimeMap")) Un Débordement De Pile

new DirectoryEntry("IIS://Localhost/MimeMap")) Un Débordement De Pile

New DirectoryServices.DirectoryEntry("IIS://localhost/MimeMap") Vitesse Examens


Vous obtenez l'idée. Tout le monde est d'accord que vous utilisez un chemin magique iis://localhost/mimemap. Et cela fonctionne très bien, sauf pour les moments où il ne l'est pas.

Le seul indice que je peux trouver pourquoi il échoue, à partir d'un IIS MVP, Chris Crowe, 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);

Il y a deux indices ici:

  1. Il appelle iis://localhost/mimemap la Chemin de la Métabase. Qui sonne pour moi comme il est une sorte de "chemin" à un "métabase".
  2. Il dit que la chemin à la métabase pourrait être quelque chose d'autre; et il donne un exemple de ce que cela pourrait être.

Droit maintenant, moi, et l'ensemble de la planète, sont figées "MetabasePath" comme

iis://localhost/MimeMap

Que doit-il vraiment? Ce que le code devrait-il faire pour construire un valide MetabasePath?


Note: je ne suis pas une erreur d'accès refusé, l'erreur est la même lorsque vous avez un invalide MetabasePath, par exemple iis://localhost/SoTiredOfThis

Il n'est pas clair à partir de la question, êtes-vous d'obtenir une exception de sécurité jetés?
Ce n'est pas une exception de sécurité. L'appel à DirectoryEntry(MetabasePath) retourne bien, et elle renvoie un objet. Vient l'erreur suivant lorsque vous essayez d'accéder à toute de retour de la DirectoryEntry propriétés de l'objet. Ils donnent tous une COM "indéterminée" erreur. Cela se produit lorsque le chemin n'est pas valide, par exemple "iis://localhost/asdfadsf"
voir la mise à jour de ma réponse.
J'ai modifié ma réponse un peu.
Cela devrait-il être sur le Serveur Faute?

OriginalL'auteur Ian Boyd | 2010-04-26