Servicehost抛出错误,即使添加到配置netsh

时间:2010-05-28 09:03:20

标签: wcf service servicehost netsh

ServiceHost.Open()抛出此错误:

  

HTTP无法注册网址http://+:8001/。你的过程没有   访问此命名空间的权限(请参阅   http://go.microsoft.com/fwlink/?LinkId=70353了解详情。

所以我使用 netsh 添加网址。但事件虽然被添加,但我仍然得到错误。这是我使用的命令:

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

djerryy是我的计算机名。当我运行netsh http show urlacl时,我看到它被添加了。

我做错了什么?

提前致谢。

3 个答案:

答案 0 :(得分:16)

您好像缺少运行该服务的用户帐户的名称。这里有几个选项:

  • 本地用户帐户:
netsh http add urlacl url=http://+:8001/ user=ComputerName\Username
  • 域用户帐户:
netsh http add urlacl url=http://+:8001/ user=DomainName\Username
  • 内置NetworkService帐户:
netsh http add urlacl url=http://+:8001/ user="NT AUTHORITY\NETWORK SERVICE"

答案 1 :(得分:5)

我必须强调:

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

仅适用于具有英语区域设置的系统!

更好的方法是删除那个空格并制作它:

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

现在该命令可以在任何语言环境中使用。我今天花了很多时间与这场比赛进行了一场比赛......所有这一切都是因为一个单一的焦炭。 ;)

答案 2 :(得分:0)

要为此答案添加更多内容:您必须指定端口号!花了很长时间尝试授权服务绑定到普通的HTTP地址,它只在我明确指定时才开始工作:

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