866 votes

Erreur - Impossible d'accéder à la métabase IIS

Après avoir installé Visual Studio 2012 et en ouvrant ma solution, j'obtiens une série d'erreurs sous cette forme :

Le projet d'application Web Foo est configuré de façon à utiliser IIS .
Impossible d'accéder au Métabase IIS . Vous n'avez pas les privilèges suffisants pour accéder IIS sites web sur votre machine.

J'obtiens ceci pour chacune de nos applications web.


Des choses que j'ai essayées :

  1. Exécution de Visual Studio en tant qu'administrateur
  2. Exécution de aspnet_regiis.exe -ga MyUserName
  3. Exécution de aspnet_regiis.exe -i

Il semble que ce soit des solutions courantes pour ce problème, mais je n'ai pas réussi à les utiliser.

Y a-t-il autre chose que je puisse essayer de faire ?

29 votes

Êtes-vous vraiment en train de fonctionner en tant qu'administrateur ? Obtenez-vous une fenêtre de dialogue de contrôle de compte d'utilisateur lorsque vous lancez VS ?

45 votes

J'ai eu le même problème et lorsque j'ai exécuté VS en tant qu'administrateur (clic droit et sélectionner exécuter en tant qu'administrateur), cela a fonctionné.

0 votes

Quelle version de IIS, Windows ?

1460voto

GordonK2004 Points 1751

Sur Windows 8 Pro :

%systemroot%\inetsrv\config

Sur Windows 7 et 8.1 et 10

%systemroot%\System32\inetsrv\config 

(Où %systemroot% est généralement C:\Windows )

Naviguez vers l'emplacement approprié ci-dessus dans l'Explorateur Windows. L'accès vous sera bloqué par une popup qui dit :

"Vous n'avez pas accès à ce dossier - Cliquez sur continuer pour obtenir un accès permanent à ce dossier"

Cliquez sur "continuer" pour ce dossier, et pour le dossier d'exportation en dessous. J'ai changé le raccourci en "Exécuter en tant que moi" (un membre du domaine et des administrateurs locaux) et j'ai pu ouvrir et déployer la solution.

1 votes

Cela a également fonctionné pour moi. J'ai trouvé la même information dans ce Réponse du forum MSDN .

0 votes

En fait, dans mon Windows 8, c'était le " C:\Windows\System32\inetsrv\config dossier "... J'espère que cela vous aidera...

45 votes

Cela a fonctionné, merci. Juste une note, le dossier de configuration peut être situé dans C:\Windows\System32\inetsrv\config

256voto

Felipe Ardila Points 1183

Je pense que vous n'exécutez pas Visual Studio avec les droits d'administrateur. Regardez ça :

http://bloggingabout.net/blogs/rick/archive/2012/10/04/unable-to-access-the-iis-metabase.aspx

Je cite

La solution est simple : démarrez votre Visual Studio avec "Run as Administrateur". Pour ce faire, cliquez avec le bouton droit de la souris sur le raccourci et et en sélectionnant "Exécuter en tant qu'administrateur".

0 votes

Je fonctionne définitivement en tant qu'administrateur. Je reçois bien l'invite de l'UAC et le logiciel se lance avec succès à partir de là. J'ai également utilisé cette méthode avec VS2010.

0 votes

Essayez ceci. Mettez ce qui suit dans l'invite de commande. %windir \Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.ex e -i

0 votes

Il est général et n'est pas exclusif à votre utilisateur.

57voto

Jeff Bridgman Points 2545

Je crois que nous avons rencontré un problème similaire au travail. Pour nous, la solution était d'aller dans le Panneau de configuration -> Programmes et fonctionnalités -> Activer ou désactiver des fonctionnalités de Windows... à l'intérieur, nous devions sélectionner Internet Information Services -> Web Management Tools -> IIS 6 Management Compatibility -> IIS Metabase et IIS 6 configuration compatibility. Windows Features dialog showing IIS Metabase option

Essayez-le et dites-moi si ça vous aide !

Remarque : Nous utilisons IIS 7.5 sur Windows 7, avec Visual Studio 2005 et 2010, et faisons des choses avec des services Web (.asmx) de la vieille école...

1 votes

J'ai essayé toutes les autres solutions (configurer les autorisations des dossiers, ne pas utiliser IIS, exécuter VS en tant qu'administrateur, redémarrer IIS, etc.), mais cette solution est la seule qui ait fonctionné pour moi. Merci pour le partage !

0 votes

Merci, cela m'a aussi aidé. J'utilise VS2013 et la structure des fichiers de configuration du fichier projet est différente de la réponse de Bruno Sena. J'étais sur le point de m'arracher les cheveux, mais je me suis rappelé que j'étais audacieux et j'ai choisi d'essayer cette solution qui a été une solution rapide.

0 votes

Assurer IIS Admin service est lancé et définissez le type de démarrage sur Automatique au lieu de Désactivé.

36voto

hopkinsrush Points 161

J'ai résolu ce problème en accordant des autorisations d'identité IIS AppPool à l'utilisateur de l'application %systemroot%\inetsrv\config

11 votes

Parfait ! Plus besoin de s'embêter à fonctionner en tant qu'administrateur. Le dossier pour Win 7 est situé ici : C:\Windows\System32\inetsrv\config

1 votes

Cela a également fonctionné pour moi, Windows 8.1, IIS 7.0, VS 2012. Merci beaucoup

4 votes

Devrait être %systemroot%. \system32\inetsrv\config

33voto

nologo Points 898

Si vous travaillez sur un projet qui ne nécessite pas l'utilisation d'IIS, une solution de contournement pour ouvrir le projet avec cette erreur est de simplement faire un clic droit sur le projet déchargé et de cliquer sur modifier, rechercher :

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>

et mettez USEIIS à false

<UseIIS>False</UseIIS>

rechargez le projet en faisant un clic droit dessus après avoir enregistré les modifications.

0 votes

Cela fonctionne pour moi, mais quel est le problème sous-jacent ici ? Il doit être faux sur mon ordinateur de bureau mais vrai sur mon ordinateur portable. Ainsi, si j'enregistre un projet dans le TFS sur mon ordinateur portable, il ne se charge pas sur mon ordinateur de bureau, et vice versa, jusqu'à ce que je modifie ce paramètre.

5 votes

En quoi cela aide-t-il à résoudre le problème de l'impossibilité d'utiliser IIS ?

0 votes

Réglage de <UseIIS>False</UseIIS> n'a pas fonctionné. Le nœud <UseIISExpress>true</UseIISExpress> était également présent. Le mettre à false n'a pas aidé. Toujours la même erreur : l'accès à la métabase iis est nécessaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X