如何使用本地系统以外的帐户运行RavenDB作为服务?

时间:2013-01-14 21:30:33

标签: windows-services ravendb windows-authentication

我正在尝试安装RavenDB以作为Windows服务运行。默认情况下,它将自己设置为在本地系统帐户下运行,因此我尝试通过在专用帐户下运行来降低安全风险。我已经为程序目录c:\ Program Files \ RavenDB和数据目录d:\ Data \ RavenDB授予了对文件系统的完全访问权限。但是,当我尝试启动服务时,它立即失败,我在事件日志中收到以下错误:

RavenDB service failed to start because of an error
System.Net.HttpListenerException (0x80004005): Access is denied
   at System.Net.HttpListener.AddAllPrefixes()
   at System.Net.HttpListener.Start()
   at Raven.Database.Server.HttpServer.StartListening() in c:\Builds\RavenDB-Stable\Raven.Database\Server\HttpServer.cs:line 350
   at Raven.Server.RavenDbServer..ctor(RavenConfiguration settings) in c:\Builds\RavenDB-Stable\Raven.Server\RavenDbServer.cs:line 43
   at Raven.Server.RavenService.<OnStart>b__0() in c:\Builds\RavenDB-Stable\Raven.Server\RavenService.cs:line 37

那么,如何配置用户运行RavenDB?我需要授予哪些权限?我已经检查了RavenDB文档和论坛,但没有在任何地方看到这个问题。

1 个答案:

答案 0 :(得分:5)

我假设您错过了服务帐户的网址。 以管理员身份打开命令提示符并输入以下内容

netsh http add urlacl url=http://+:8080/ user=domain\user

这应该为您的服务帐户授予必要的权限,以便为此端口创建HttpListener