Servicehost throwing an error, even though added to configuration with netsh
-
05-10-2019 - |
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.
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"