为什么我的Windows服务托管一个WCF服务运行在LocalService或NetworkService帐户下

问题描述:

我有一个简单的Windows服务托管一个WCF服务。我想在LocalService帐户下(甚至是NetworkService帐户)运行Windows服务。但是,当我尝试在其中任一帐户下启动它时,它会立即停止。它在LocalSystem帐户下启动并运行正常。有关如何解决为什么它不会保持在LocalService或NetworkService下运行的任何想法。为什么我的Windows服务托管一个WCF服务运行在LocalService或NetworkService帐户下

感谢,

大卫

+0

是否在事件日志中看到任何可能帮助您找出原因的条目? – 2010-09-10 05:05:35

得益于建议检查事件日志从marc_s和HO1我发现我需要添加一个命名空间保留如下:

netsh http add urlacl url=http://+:1239/BOBPersistenceServer/ user="Local Service" 

详情请参阅http://msdn.microsoft.com/en-us/library/ms733768.aspxhttp://msdn.microsoft.com/en-au/magazine/cc163531.aspx

LocalSystem具有在本地计算机上具有广泛的特权,而LocalServiceNetworkService具有最小的特权。所以这听起来很像你的服务需要LocalService没有的一些特权。正如marc_s在他的评论中所说的,第一步应该是检查事件查看器,看看那里是否有任何相关的错误消息。

如果这没有帮助,可以尝试在服务启动代码周围添加一些异常处理,并记录事件日志的所有异常,希望这样可以给您足够的信息来弄清楚它是什么,这么做需要更高的特权。