2016-02-25 50 views
1

我在C#中創建了一個簡單的基於WCF的服務。我安裝它,並在本地系統帳戶下運行良好。C#Windows服務在使用特定域帳戶時不運行

問題是我需要它在特定域帳戶下運行,並且它不在該帳戶下運行。我得到錯誤

Error 1068: The dependency service or group failed to start. 

事情是,這個服務沒有依賴關係。

該帳戶是本地管理員,具有登錄即服務權限。而且這個問題似乎並沒有出現在我的代碼中,因爲我在Main()啓動時寫入事件日誌,在發生其他任何事情之前 - 而且在使用域帳戶時我甚至沒有收到該日誌。

+0

您已通過services.msc驗證?你有沒有檢查你的服務的屬性,並在依賴關係選項卡你確認沒有依賴關係? – Viru

+0

是你的綁定net.tcp? –

+0

是的,我檢查了services.msc - 沒有依賴關係。我的綁定被命名爲管道。 – user884248

回答

3

問題解決了。

看看系統事件日誌,我看到服務取決於DNS客戶端服務。這不是實際的依賴關係,但顯然,當服務設置爲以域用戶身份登錄時,它需要運行此服務。

由於某些未知原因,該服務被設置爲禁用。啓用它並啓動它解決了所有問題。

+0

感謝您添加您的解決方案,我在安裝應用程序時遇到了完全相同的問題。服務沒有依賴關係,但是因爲它們作爲域用戶運行,所以如果DNS客戶端設置爲「禁用」,它將不會啓動。我將它設置爲手動,並在啓動這些其他服務後自動啓動。 –

1

您必須授予您用戶帳戶的權利。

  1. (Sysinternals公司與PsGetSid,例如)獲取用戶的SID
  2. 啓動記事本在管理模式和開放SMSvcHost.exe.config(在C:\Windows\Microsoft.NET\Framework\v4.0.30319文件夾)
  3. 在第system.serviceModel.activation有一個叫net.pipe子部分 。本部分枚舉標識符: LocalSystem,LocalService,NetworkService和Administrators。 添加您的SID在本節:

    <add securityidentifier="your-SID-that-starts-with-S"> 
    
  4. 重啓Net.Pipe偵聽器適配器服務

+0

真的嗎?哇。稍後當我在我的電腦上時我會嘗試。謝謝! – user884248

+0

雖然它在創建實際服務主機之前使服務崩潰,但這很奇怪: -/ – user884248

+0

不,那不是。 – user884248

相關問題