2012-12-16 72 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"