我使用RavenDB 3天,它工作正常且完美。直到昨天,突然它总是返回一个错误:
{StatusCode:503,ReasonPhrase:'服务不可用',版本:1.1, 内容:,标题:{}} System.Net.Http.HttpResponseMessage
Raven Studio还显示503 Service Unavailable。我在 IIS 中安装了RavenDB。我设法使用此命令清除端口:
netsh http delete urlacl http://*:8080/
我可以打开Raven Studio了。一旦我重新运行我的项目,它会再次显示503错误,而Raven Studio也会再次显示503 Service Unavailable。
所以,我卸载并使用 Windows服务重新安装 RavenDB。并显示相同的错误,除了Raven Studio不再影响。
当我调试代码时,错误来自 session.SaveChanges()方法。我甚至尝试创建一个要保存的简单对象,并仍然返回相同的错误503 消息。以下是控制台中显示的内容:
Trying to grant rights for http.sys
runas netsh http add urlacl url=http://+:8080/ user="SURFPRO4\Riza"
Failed to grant rights for listening to http, exit codes: (0 and 0)
所以,我怀疑是因为最后一条消息:
失败授予侦听http,退出代码的权限:(0和0)
我不明白的是,3天没事,因为我没有更改或更新任何相关的代码。
NonAdminHttp.EnsureCanListenToWhenInNonAdminContext(8080);
Store = new DocumentStore
{
Url = "http://localhost:8080",
DefaultDatabase = "RizaDB"
};
Store.Initialize();
并保存:
using (var session = Store.OpenSession())
{
session.Store(@event);
session.SaveChanges(); // <--- The error trips here
}
我将端口更改为32000并且可以正常工作。但是,当我运行项目时,它会在每次想要保存数据时转储它。
Trying to revoke rights for http.sys
runas netsh http delete urlacl url=http://+:32000/
Trying to grant rights for http.sys
runas netsh http add urlacl url=http://+:32000/ user="SURFPRO4\Riza"
Failed to grant rights for listening to http, exit codes: (0 and 0)
Trying to revoke rights for http.sys
runas netsh http delete urlacl url=http://+:32000/
Trying to grant rights for http.sys
runas netsh http add urlacl url=http://+:32000/ user="SURFPRO4\Riza"
Failed to grant rights for listening to http, exit codes: (0 and 0)
任何人都可以帮我解决这个问题。非常感谢。