2012-12-16 28 views
12

我想在窗口服务中托管wcf。我以前做过几次,没有任何问题。这次在我安装了服务并点击开始后,我在EventViewer中出现以下错误。服务无法启动。无法注册URL

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同一个地址 - 没事。

我看到了问题herehere,但没有解决方案的帮助了我。

有没有人有想法?

回答

7

我发现改变安装帐户为本地做了:-)

+3

我花了一段时间才找到如何做到这一点,所以下面是步骤:打开服务程序(在Win 7中开始 - >查看本地服务),在列表中找到您的服务,右键单击它,单击属性,转到登录选项卡。我将我更改为我的Active Directory帐户和密码。 – Aligned

+0

如果您想更改服务本身,而无需手动更改服务实例。更改ServiceProcessInstaller的属性“帐户”。 – Harry

17

至于你的答案,这是一个有点猎枪调试工作。你现在有具有管理员权限的网络服务:

LocalSystem Account (Windows)

LocalSystem帐户[...]在本地计算机上具有广泛的特权,并作为网络上的计算机。它的标记包括NT AUTHORITY \ SYSTEM和BUILTIN \ Administrators SID;这些帐户可以访问大多数系统对象。

大多数服务不需要如此高的权限级别。如果您的服务不需要这些权限,并且它不是交互式服务,请考虑使用LocalService帐户或NetworkService帐户。有关更多信息,请参阅服务安全和访问权限。

所以你最好运行此服务的网络服务,并给它适当的权限使用的端口,你正在尝试使用在Configuring HTTP and HTTPS作为解释:

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