WCF 服务访问权限:没有对此命名空间的访问权限
Posted
技术标签:
【中文标题】WCF 服务访问权限:没有对此命名空间的访问权限【英文标题】:WCF Service Access right: No access rights to this namespace 【发布时间】:2012-07-23 16:56:38 【问题描述】:使用任务调度程序运行我的程序时出现以下错误:
HTTP 无法注册 URL http://+:4711/myWCFService/。您的 进程没有访问此命名空间的权限(请参阅 http://go.microsoft.com/fwlink/?LinkId=70353 了解详情)。 ---> System.Net.HttpListenerException:访问被拒绝
不幸的是,以管理员身份运行无法解决我的问题。我也尝试用 netsh 注册 http 地址,但我仍然遇到同样的错误。
【问题讨论】:
【参考方案1】:你运行了什么netsh
命令?
netsh http add urlacl http://+:4711/ user=DOMAIN\USER
在您的计算机上,内置管理员帐户对所有 HTTP 命名空间保留具有隐式所有权,因此您需要将特定命名空间保留(如上)的所有权委托给将运行 HTTP 端点的目标帐户。您可以通过在执行netsh
命令之前确保您的Run as administrator
来做到这一点。
要检查有哪些命名空间保留,请运行:
netsh http show urlacl
【讨论】:
允许这样做有什么安全问题吗?我们有一个供应商想以这种方式委派服务帐户?我更希望供应商让服务在本地系统下运行,但他们无法这样做。【参考方案2】:我正在开发托管在 Windows 服务(托管)中的测试 WFC 服务。然后我为 HTTP 添加了另一个基地址。当我再次启动服务时,我得到了同样的错误。然后我将服务帐户从“本地服务”更改为“本地系统”并解决了问题。由于这是一个测试程序,我可以继续。
【讨论】:
以上是关于WCF 服务访问权限:没有对此命名空间的访问权限的主要内容,如果未能解决你的问题,请参考以下文章
单元测试 WCF 服务时,AddressAccessDeniedException“您的进程没有访问此命名空间的权限”