我想在窗口服务中托管wcf。我以前做过几次没有任何问题。这次安装服务并单击start后,我在EventViewer中收到以下错误。
Service cannot be started. System.ServiceModel.AddressAccessDeniedException: HTTP could not register URL http://+:.../.../. Your process does not have access rights to this namespace (see http://go.microsoft.com/fwlink/?LinkId=70353 for details).
当我在ConsoleApplication上托管相同的服务,相同的地址时 - 好吧。
我看到了问题here和here,但没有一个解决方案对我有帮助。
有没有人有想法?
答案 0 :(得分:17)
至于你的答案,那是一些猎枪调试。您现在拥有具有管理员权限的网络服务:
LocalSystem Account (Windows):
LocalSystem帐户[...]在本地计算机上具有广泛的权限,并充当网络上的计算机。它的令牌包括NT AUTHORITY \ SYSTEM和BUILTIN \ Administrators SID;这些帐户可以访问大多数系统对象。
大多数服务不需要如此高的权限级别。如果您的服务不需要这些权限,并且它不是交互式服务,请考虑使用LocalService帐户或NetworkService帐户。有关更多信息,请参阅服务安全性和访问权限。
因此,您最好将此服务作为NetworkService运行,并为其提供使用您尝试使用的端口的适当权限,如Configuring HTTP and HTTPS中所述:
netsh http add urlacl url=http://+:80/MyUri user="NT AUTHORITY\NETWORK SERVICE"
答案 1 :(得分:7)
我发现将安装程序帐户更改为LocalSystem可以完成这项工作: - )