0

我正在尝试将 NServiceBus 3.3.5 设置为使用集中式 RavenDB,而不是在每个应用程序服务器上运行 RavenDB。我可以将 NServiceBus.Persistence 与 Windows 用户名/密码一起使用,并且可以正常工作。但是,如果可能的话,我想使用 APIKeys。

作品:

<add name="NServiceBus.Persistence"
     connectionString="Url=http://DBServerName:8080;Database=DBName;User=Domain\RavenDBTestUser;Password=**********;" />

不起作用:

<add name="NServiceBus.Persistence"
     connectionString="Url = http://DBServerName:8080/; ApiKey = NServiceBusClients/SecretKey; Database = DBName" />

启动服务时出现以下错误(RavenDB 返回 403)...

FATAL 06:32:23 Autofac.Core.DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor(Raven.Client.IDocumentStore)' on type 'RavenTimeoutPersistence'. ---> System.InvalidOperationException ---> System.Net.WebException: The remote server returned an error: (403) Forbidden.
   at System.Net.HttpWebRequest.GetResponse()
   at Raven.Client.Connection.HttpJsonRequest.ReadStringInternal(Func`1 getResponse) in c:\Builds\RavenDB-Stable\Raven.Client.Lightweight\Connection\HttpJsonRequest.cs:line 279

用户 Domain\RavenDBTestUser 和 api-key 在 RavenDB 中具有相同的访问权限。我已经经历了这个这个,但那些是从去年年中开始的,大约是 3.2.3 版。3.3.5 中还是一样还是我做错了什么?

PS 连接字符串是从 Raven Studio 复制粘贴的,所以没有错字。

4

1 回答 1

2

NServiceBus v3.3.5 仍然使用 RavenDb v1,不幸的是我找不到太多关于在 Raven v1 中使用 APIKeys 的文档,我唯一找到的是http://ravendb.net/docs/1.0/server/bundles/authentication

上面的链接表明您需要“身份验证捆绑包”,您安装了吗?

另一方面,NServiceBus v4 使用 RavenDB v2,通过阅读这个页面,应该很容易设置它。NServiceBus v4 beta 刚刚发布,见http://nservicebus.com/

于 2013-03-26T02:35:19.880 回答