首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RavenDB网络接入

RavenDB网络接入
EN

Stack Overflow用户
提问于 2011-12-29 19:06:12
回答 3查看 4.8K关注 0票数 14

我很难找到关于如何让RavenDB在网络上工作的信息。在同一个网络中,我可以运行我的应用程序的一个实例,它将显示来自我的RavenDB的数据。然而,当我试图写入数据时,我会得到401个未经授权的异常。

设置要通过网络访问的RavenDB的正确方法是什么?

现在,我在Raven.Server.exe.config中有了这个问题,这只是一个短期的解决方案:

代码语言:javascript
复制
<add key="Raven/AnonymousAccess" value="All" />

我不明白的是,RavenDB网站说要使用这样的东西:

代码语言:javascript
复制
<connectionStrings>
  <add name="RavenDb" 
       connectionString="Url=http://serverName:8080;user=user;password=password"/>
</connectionStrings>

好的,这对于正在运行的应用程序来说很好,但是如何设置RavenDB服务器以允许用户和密码呢?这样做是错误的吗(以某种方式将RavenDB配置文件设置为允许这些凭据)?如果这是错误的,我应该如何定义服务器端的凭据?

编辑:这是我的尝试和结果:

我正在通过双击RavenDB运行Raven.Server.exe。

场景1

客户端app.Config:

代码语言:javascript
复制
  <connectionStrings>
    <add name="RavenDb" connectionString="Url = http://server:8080;domain=Xx;user=Xx\user;password=pw"/>
  </connectionStrings>

DocumentStore设置:

代码语言:javascript
复制
DocumentStore documentStore = new DocumentStore();
documentStore.ConnectionStringName = "RavenDb";
documentStore.Initialize();

拯救行动:

代码语言:javascript
复制
Session.Store(objectToSave);

结果:“远程服务器返回了一个错误:(401)未经授权。”

场景2

客户端app.config:

代码语言:javascript
复制
<add key="databaseUrl" value="http://server:8080"/>

DocumentStore设置:

代码语言:javascript
复制
string databaseUrl = ConfigurationManager.AppSettings["databaseUrl"];            
DocumentStore documentStore = new DocumentStore();
documentStore.Url = databaseUrl;
documentStore.Initialize();

拯救行动:

代码语言:javascript
复制
Session.Store(objectToSave);

结果:“远程服务器返回了一个错误:(401)未经授权。”内部异常:“目标主体名称不正确”

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-30 00:34:50

在运行RavenDB的机器上创建一个本地用户,并使用您想要的任何凭据。然后将/Data目录的读/写权限(如果需要的话为/Tenants目录)分配给这个用户。

如果您将RavenDB作为服务或独立应用程序运行,remote auth应该使用(Windows)用户凭据。如果在IIS上运行,请确保启用了Windows身份验证(默认情况下禁用!)。

票数 7
EN

Stack Overflow用户

发布于 2012-05-30 17:16:34

对我来说,我不得不将域添加到prod机器上的连接字符串中,但在远程访问同一台计算机时却不能.我不知道。

注意:我创建了一个名为RAVENDB的windows用户,并将其完全权限分配给数据目录。

所以我的连接字符串可以远程工作

代码语言:javascript
复制
<add name="raven" connectionString="Url=http://myserver.com:8080;user=RAVENDB;password=PASS" />

而在实际服务器上,我不得不使用

代码语言:javascript
复制
<add name="raven" connectionString="Url=http://myserver:8080;DOMAIN=MYSERVERNAME;user=RAVENDB;password=PASS" />
票数 4
EN

Stack Overflow用户

发布于 2011-12-30 09:06:41

默认情况下,RavenDB使用Windows身份验证。因此,如果您在服务器机器上创建用户,它将接受它。另一种方法是定义特定于ravendb的用户,但是很多人只是使用Windows。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8672237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档