2

我正在尝试安装 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 文档和论坛,但没有看到任何地方讨论过这个问题。

4

1 回答 1

5

我假设您缺少服务帐户的 url acl。以管理员身份打开命令提示符并输入以下内容

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

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

于 2013-01-14T21:58:41.550 回答