我已经创建了一个 WCF 服务并使用 Windows 服务主机托管它。
为了安装项目,我创建了一个安装项目(如 here 所述)。
在教程中,它说在 ProjectInstaller.cs 中将 serviceProcessInstaller1
Account 属性定义为 Network Service。
使用此设置时,服务未在服务器上启动。当我尝试手动启动该进程时,它立即返回到已停止 状态。
在我将帐户 更改为LocalSystem 之后,服务正常运行。
我的问题是:
- 知道为什么它不能与网络服务帐户一起使用吗?
- 使用具有 LocalSystem 帐户的服务器有哪些安全隐患?此服务器在本地 Intranet 中用作其他服务器的报告服务器。
最佳答案
- 网络服务没有使用命名管道运行 WCF 主机的适当权限(参见 http://weblogs.thinktecture.com/cweyer/2007/12/dealing-with-os-privilege-issues-in-wcf-named-pipes-scenarios.html)。
- 参见 http://www.windowsitpro.com/article/services/understanding-the-local-service-and-network-service-accounts.aspx有关这些帐户之间差异的说明。 LocalSystem 是一个本地管理帐户,如果被攻击者利用,可能会造成很多麻烦。网络服务帐户的访问权限要少得多,因此更好用。
关于c# - WCF Windows服务权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2646015/