我很难找到关于如何让RavenDB在网络上工作的信息。在同一个网络中,我可以运行我的应用程序的一个实例,它将显示来自我的RavenDB的数据。然而,当我试图写入数据时,我会得到401个未经授权的异常。
设置要通过网络访问的RavenDB的正确方法是什么?
现在,我在Raven.Server.exe.config中有了这个问题,这只是一个短期的解决方案:
<add key="Raven/AnonymousAccess" value="All" />我不明白的是,RavenDB网站说要使用这样的东西:
<connectionStrings>
<add name="RavenDb"
connectionString="Url=http://serverName:8080;user=user;password=password"/>
</connectionStrings>好的,这对于正在运行的应用程序来说很好,但是如何设置RavenDB服务器以允许用户和密码呢?这样做是错误的吗(以某种方式将RavenDB配置文件设置为允许这些凭据)?如果这是错误的,我应该如何定义服务器端的凭据?
编辑:这是我的尝试和结果:
我正在通过双击RavenDB运行Raven.Server.exe。
场景1
客户端app.Config:
<connectionStrings>
<add name="RavenDb" connectionString="Url = http://server:8080;domain=Xx;user=Xx\user;password=pw"/>
</connectionStrings>DocumentStore设置:
DocumentStore documentStore = new DocumentStore();
documentStore.ConnectionStringName = "RavenDb";
documentStore.Initialize();拯救行动:
Session.Store(objectToSave);结果:“远程服务器返回了一个错误:(401)未经授权。”
场景2
客户端app.config:
<add key="databaseUrl" value="http://server:8080"/>DocumentStore设置:
string databaseUrl = ConfigurationManager.AppSettings["databaseUrl"];
DocumentStore documentStore = new DocumentStore();
documentStore.Url = databaseUrl;
documentStore.Initialize();拯救行动:
Session.Store(objectToSave);结果:“远程服务器返回了一个错误:(401)未经授权。”内部异常:“目标主体名称不正确”
发布于 2011-12-30 00:34:50
在运行RavenDB的机器上创建一个本地用户,并使用您想要的任何凭据。然后将/Data目录的读/写权限(如果需要的话为/Tenants目录)分配给这个用户。
如果您将RavenDB作为服务或独立应用程序运行,remote auth应该使用(Windows)用户凭据。如果在IIS上运行,请确保启用了Windows身份验证(默认情况下禁用!)。
发布于 2012-05-30 17:16:34
对我来说,我不得不将域添加到prod机器上的连接字符串中,但在远程访问同一台计算机时却不能.我不知道。
注意:我创建了一个名为RAVENDB的windows用户,并将其完全权限分配给数据目录。
所以我的连接字符串可以远程工作
<add name="raven" connectionString="Url=http://myserver.com:8080;user=RAVENDB;password=PASS" />而在实际服务器上,我不得不使用
<add name="raven" connectionString="Url=http://myserver:8080;DOMAIN=MYSERVERNAME;user=RAVENDB;password=PASS" />发布于 2011-12-30 09:06:41
默认情况下,RavenDB使用Windows身份验证。因此,如果您在服务器机器上创建用户,它将接受它。另一种方法是定义特定于ravendb的用户,但是很多人只是使用Windows。
https://stackoverflow.com/questions/8672237
复制相似问题