Question

ServiceHost.Open() is throwing this error:

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).

So I used netsh to add the url. But event though it is added, i'm still getting the error. This is the command I use:

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

djerryy is my computername. When I run netsh http show urlacl i see it was added.

What am I doing wrong?

Thanks in advance.

Was it helpful?

Solution

It looks like you are missing the name of the user account who is running the service. Here's a couple of options:

  • Local user account:
netsh http add urlacl url=http://+:8001/ user=ComputerName\Username
  • Domain user account:
netsh http add urlacl url=http://+:8001/ user=DomainName\Username
  • Built-in NetworkService account:
netsh http add urlacl url=http://+:8001/ user="NT AUTHORITY\NETWORK SERVICE"

OTHER TIPS

I must stress:

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

will work only on a system with the English locale!

A better way is to remove that one space and make it:

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

Now the command will work on any locale. I spent a good 0,5h battling this today... all because of a single char. ;)

To add even more to this answer: You MUST specify a port number! Spend quite a while trying to authorize a service to bind to a normal HTTP address, it only started working when I explicitly specified:

netsh http add urlacl 
    url=http://some.example.com:80/extension/ 
    user="NT AUTHORITY\NETWORKSERVICE"
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top