Comment détecter si ASP.NET est activé dans IIS 7

Le défi est de déterminer si ASP.NET est activé dans IIS7 fiable et de façon correcte.

L'activation/la Désactivation se fait dans ce cas en allant dans:

Server Manager -> 
    Roles -> 
        Web Server (IIS) -> 
            Remove Role Services -> 
                Remove ASP.NET

Le lieu naturel pour déterminer ce qui devrait être à l'intérieur de la applicationHost.fichier de configuration. Cependant, avec ASP.NET activé ou désactivé, nous avons encore le "ManagedEngine" module disponible, et nous avons encore le filtre isapi enregistrement de la balise.

Le mieux que je puisse trouver à l'heure actuelle est de vérifier si le <isapiCgiRestriction> balise comprend l'aspnet_isapi.dll ou que le RÉSEAU de fournisseur de trace est disponible.

Cependant ce ne sont pas détecter la présence de l'ASP.NET config directement, juste un effet secondaire qui pourrait être reconfiguré par l'utilisateur.

Je préfère le faire en examinant la configuration IIS/installation plutôt que de l'OS lui-même, si possible, bien que l'énumération des Rôles & les Services sur le serveur pourrait être acceptable si l'on peut garantir que cette technique fonctionnera toujours à chaque fois que IIS7 est utilisé.

Mise à jour

Merci pour les réponses. Clarifier exactement ce que je veux faire, je suis en tirant paramètres à partir d'une variété d'endroits dans la configuration du serveur en une seule (readonly) vue de montrer ce que l'utilisateur doit être configuré pour autoriser le logiciel à travailler.

L'un des paramètres que j'ai besoin d'apporter est celui-ci:
Comment détecter si ASP.NET est activé dans IIS 7

L'on a mis en évidence en rouge.

Je n'ai pas besoin de manipuler le réglage, il suffit de le reproduire. Je veux voir si l'utilisateur a coché la ASP.NET boîte quand ils ont ajouté le rôle IIS sur le serveur, comme dans cet exemple il n'a pas clairement.

J'aimerais le faire en regardant quelque chose de fiable dans IIS plutôt que d'énumérer les services de rôle parce que je ne veux pas ajouter n'importe quelle plateforme dépendances spécifiques sur le chèque que je n'ai pas besoin. Je ne sais pas s'il sera jamais possible d'installer IIS7 sur un serveur qui n'a pas les Rôles et les Services d'infrastructure, mais de préférence, je préfère ne pas m'en soucier. J'ai aussi une charge de bibliothèques pour frotter autour de IIS est déjà.

Cependant, je suis également de la difficulté à trouver comment faire pour énumérer les Rôles/Services à tous, donc si il y a une solution qui consiste à faire cela, il serait certainement utile, et beaucoup mieux que la vérification de l'effet secondaire d'avoir le RÉSEAU de fournisseur de trace qui traînent.

Malheureusement, si vous ne cochez pas la ASP.NET bouton, vous pouvez toujours obtenir le ManagedEngine dans le module IIS applicationHost.fichier de config, il n'est donc pas un contrôle fiable. Vous pouvez également avoir ASP.NET mappé comme un filtre isapi, si leur vérification n'est pas suffisant. Ces choses sont particulièrement problématique dans le cas où ASP.NET il a été installé mais a été supprimé.

Il semble que la meilleure solution serait d'examiner le Rôle des Services. Toutefois, l'API informations sur cette recherche est assez rare, d'où l'appel à l'aide.

source d'informationauteur Jim T | 2010-12-14