gpt4 book ai didi

RavenDB 网络访问

转载 作者:行者123 更新时间:2023-12-03 22:28:57 26 4
gpt4 key购买 nike

我很难找到有关如何让 RavenDB 在网络上工作的信息。在同一个网络中,我可以运行我的应用程序实例,它会显示来自我的 RavenDB 的数据。但是,当我尝试写入数据时,出现 401 Unauthorized 异常。

设置要通过网络访问的 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 配置文件以允许这些凭据)?如果这是错误的,我应该如何在服务器端定义凭据?

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

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

场景一

客户端 app.Config:

  <connectionStrings>
<add name="RavenDb" connectionString="Url = http://server:8080;domain=Xx;user=Xx\user;password=pw"/>
</connectionStrings>

文档存储设置:
DocumentStore documentStore = new DocumentStore();
documentStore.ConnectionStringName = "RavenDb";
documentStore.Initialize();

保存操作:
Session.Store(objectToSave);

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

场景2

客户端 app.config:

<add key="databaseUrl" value="http://server:8080"/>

文档存储设置:
string databaseUrl = ConfigurationManager.AppSettings["databaseUrl"];            
DocumentStore documentStore = new DocumentStore();
documentStore.Url = databaseUrl;
documentStore.Initialize();

保存操作:
Session.Store(objectToSave);

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

最佳答案

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

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

关于RavenDB 网络访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8672237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com