WCF ServiceHost访问权限

Jos*_*hua 164 c# wcf windows-7

通过WCF教程时,我收到以下错误.

HTTP无法注册URL http:// +:8000/ServiceModelSamples/Service /.您的进程没有此命名空间的访问权限(有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=70353).

这是由Windows 7的限制引起的吗?

Jos*_*hua 177

问题是Windows阻止了URL的创建.

修复步骤:以管理员身份运行命令提示符.将URL添加到ACL

netsh http add urlacl url=http://+:8000/ServiceModelSamples/Service user=mylocaluser
Run Code Online (Sandbox Code Playgroud)

  • 注意:您几乎必须完全输入url = http:// +:port/path.url = http://地址:端口/路径对我来说不起作用,正如您所想的那样.另请注意,您必须使用网络服务器作为您的用户("NT AUTHORITY\NETWORK SERVICE",如果这是您的服务安装程序设置的那个). (12认同)
  • 无论管理员访问权限,你都可以这样做吗? (8认同)
  • 很高兴你解决了这个问题."+"是什么意思? (4认同)

Ste*_*man 91

如果您通过IDE运行,以管理员身份运行应该有所帮助.为此,请找到Visual Studio 2008/10应用程序图标,右键单击它并选择"以管理员身份运行"

  • 并不是一个"更好"的解决方案@Liam - 企业设置中的开发环境中的管理员权限可以为您提供更多权限来执行危险的事情.一个更简单的解决方案,当然,但有权力的责任... (22认同)
  • 原始解决方案还需要以管理员身份执行 - 在较短的时间内授予,当然您需要从安全上下文中了解自己在做什么. (2认同)

Dav*_*rdi 35

另一种解决方案是使用地址

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

.NET Framework(3.5)自动注册此地址(http://*:8732/Design_Time_Addresses)以用于调试范围.当您需要在visual studio中托管服务以进行调试或测试时,这非常有用.不要在生产中使用它......


Met*_*lay 28

您可以使用管理员打开命令提示符并编写此文本:

netsh http add urlacl url=http://+:8000/ServiceModelSamples/Service user=Everyone
Run Code Online (Sandbox Code Playgroud)