2010-05-28 2 views
4

ServiceHost.Open() est de lancer cette erreur:ServiceHost lancer une erreur, même si ajouté à la configuration avec netsh

HTTP could not register URL http://+:8001/ . Your process does not have access rights to this namespace (see http://go.microsoft.com/fwlink/?LinkId=70353 for details).

J'utilisé netsh pour ajouter l'URL. Mais même si l'événement est ajouté, je reçois toujours l'erreur. Ceci est la commande que j'utilise:

netsh http add urlacl url=http://+:8001/ user=djerryy

djerryy est mon computername. Lorsque je cours netsh http show urlacl je vois qu'il a été ajouté.

Qu'est-ce que je fais mal?

Merci d'avance.

Répondre

14

Il semble qu'il vous manque le nom du compte d'utilisateur qui exécute le service. Voici quelques options:

  • compte utilisateur local:
netsh http add urlacl url=http://+:8001/ user=ComputerName\Username
  • compte utilisateur de domaine:
netsh http add urlacl url=http://+:8001/ user=DomainName\Username
  • Compte intégré NetworkService:
netsh http add urlacl url=http://+:8001/ user="NT AUTHORITY\NETWORK SERVICE"
+0

Je ne suis pas dans un domaine. et j'ai essayé DJERRYY \ Djerry, qui me donnait toujours la même erreur – Terry

+0

Où hébergez-vous votre service? Le démarrez-vous à partir de Visual Studio? Quel est le point de terminaison du service? –

+0

Non, le service a été installé avec un projet d'installation. Il fonctionne sous forme de services Windows. C'est l'adresse que j'utilise comme Uri: "net.tcp: // localhost: 8000", mais j'essaye aussi d'ajouter 8000 ... – Terry

3

Je dois souligner:

netsh http add urlacl url=http://+:8001/ user="NT AUTHORITY\NETWORK SERVICE"

ne fonctionnera que sur un système avec les paramètres régionaux anglais!

Une meilleure façon est de supprimer qu'un espace et faire:

netsh http add urlacl url=http://+:8001/ user="NT AUTHORITY\NETWORKSERVICE"

Maintenant, la commande fonctionne sur tous les paramètres régionaux. J'ai passé un bon quart d'heure à combattre ça aujourd'hui ... tout ça à cause d'un seul personnage. ;)

0

Pour ajouter encore plus à cette réponse: Vous DOIT spécifier un numéro de port! Passer beaucoup de temps à essayer d'autoriser un service à se lier à une adresse HTTP normale, il a seulement commencé à fonctionner quand j'ai explicitement spécifié:

netsh http add urlacl 
    url=http://some.example.com:80/extension/ 
    user="NT AUTHORITY\NETWORKSERVICE" 
Questions connexes