我正在尝试安装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文档和论坛,但没有在任何地方看到这个问题。
答案 0 :(得分:5)
我假设您错过了服务帐户的网址。 以管理员身份打开命令提示符并输入以下内容
netsh http add urlacl url=http://+:8080/ user=domain\user
这应该为您的服务帐户授予必要的权限,以便为此端口创建HttpListener