2009-05-20 17 views
164

Je reçois l'erreur suivante lors de l'exécution du didacticiel WCF.WCF ServiceHost droits d'accès

HTTP n'a pas pu enregistrer l'URL http://+:8000/ServiceModelSamples/Service/. Votre processus n'a pas de droits d'accès à cet espace de noms (voir http://go.microsoft.com/fwlink/?LinkId=70353 pour plus de détails).

Est-ce un problème causé par une restriction sur Windows 7?

+0

duplication possible de [HTTP impossible d'enregistrer l'URL http: // +: 8000/HelloWCF /. Votre processus n'a pas les droits d'accès à cet espace de noms] (http://stackoverflow.com/questions/8727293/http-could-not-register-url-http-8000-hellowcf-your-process-does-not-have) –

+0

Vous pouvez trouver beaucoup d'informations utiles sur ce [blog] (http://blogs.msdn.com/b/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http -8080.aspx). Hey fournit également un outil graphique agréable. – bob

Répondre

172

Le problème est que l'URL n'est pas créée par Windows.

Étapes à corriger: Exécutez l'invite de commande en tant qu'administrateur. Ajouter l'URL à la LCA

netsh http add urlacl url=http://+:8000/ServiceModelSamples/Service user=mylocaluser 
+3

Je suis content que vous ayez résolu cela. Qu'est-ce que le "+" voulait dire? –

+0

J'ai l'impression que cela signifie une adresse IP locale générique. – Joshua

+10

Remarque: Vous devez entrer url = http: // +: port/chemin à peu près exactement. url = http: // adresse: port/chemin n'a pas fonctionné pour moi, comme vous pourriez le penser. Notez également que vous devez utiliser le serveur réseau en tant qu'utilisateur ("NT AUTHORITY \ NETWORK SERVICE", si le programme d'installation de votre service est paramétré.) –

92

Si vous utilisez via l'IDE, en cours d'exécution en tant qu'administrateur devrait aider. Pour ce faire localiser l'icône de l'application Visual Studio 2008/10, faites un clic droit dessus et sélectionnez "Exécuter en tant qu'administrateur"

+20

Pas vraiment un "beaucoup mieux" solution @Liam - privilèges d'administrateur dans un environnement de dev dans une configuration d'entreprise pourrait vous donner beaucoup plus d'autorisations pour faire des choses dangereuses.Une solution beaucoup plus facile, mais avec la puissance vient la responsabilité ... – Unsliced

+2

Solution originale également nécessaire exécution en tant qu'administrat ou - accordé pour une période de temps plus courte, et bien sûr vous devez être conscient de ce que vous faites dans un contexte de sécurité. –

+1

donc, de toute façon de le faire sans privilèges d'administrateur? – Joset

1

Je travaille sur Windows Vista. Même moi j'ai fait face au même problème mais quand j'ai essayé d'exécuter VS 2008 avec des privilèges administratifs, le problème a été résolu et mon service était opérationnel. :)

32

Une autre solution consiste à utiliser l'adresse

http://localhost:8732/Design_Time_Addresses/YOUR_ADDRESS.

.NET Framework (3.5) enregistre automatiquement cette adresse (http: // *: 8732/Design_Time_Addresses) pour l'étendue de débogage. Ceci est utile lorsque vous devez héberger des services dans Visual Studio pour le débogage ou le test. Ne l'utilisez pas en production ...

+1

Certains sites font référence au port 8731 au lieu de 8732. –

+0

Est-ce que cela devrait fonctionner par défaut dans TFS? –

+1

@DaviFiamenghi Tant que .net 3.5 est installé, cela devrait fonctionner. Mais je n'ai jamais essayé. Habituellement, je considère un test comme celui-ci comme un test d'intégration, donc je ne l'exécute pas sur TFS, je ne fais que des tests unitaires sur TFS. –

5

Ouvrez Visual Studio en tant qu'administrateur .. Il fonctionnera.

+0

Ça a marché pour moi. Windows8; VS2012 – WinW

+0

J'ai eu le même problème avec nunit-gui. Ran en tant qu'administrateur, tout va bien. –

+0

J'ai le même problème vs 2013 et en cours d'exécution que l'administrateur ne fonctionne pas – ZoomVirus

0

Veuillez ouvrir votre Visual Studio en mode Administration, puis essayez-le.

0

L'exécution de Visual Studio en tant qu'administrateur peut résoudre le problème, mais si vous utilisez Visual Studio avec par exemple TortoiseSVN, vous ne pouvez pas valider les modifications. Une autre solution possible serait d'exécuter le service en tant qu'administrateur et le reste de Visual Studio en tant qu'utilisateur local.

25

Vous ouvrez l'invite de commande avec l'administrateur et vous écrivez ce texte:

netsh http add urlacl url=http://+:8000/ServiceModelSamples/Service user=Everyone 
+1

Merci, cela fonctionne parfaitement pour moi;) –

+0

Vous êtes les bienvenus :) –

-1

S'il vous plaît ouvrir votre Visual Studio en tant qu'administrateur:

enter image description here

-2

En cas d'obtenir cette erreur lorsque vous essayez de démarrer un service Windows, ajoutez l'utilisateur du service Windows au groupe des administrateurs (gestion de l'ordinateur -> utilisateurs et groupes locaux -> groupes -> administrateurs -> ajoutez votre utilisateur Active Directory ici).

Questions connexes