2016-02-25 51 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

相关问题