初始化包含URL中的计算机名的RavenDB文档库时出错

时间:2011-08-26 20:29:35

标签: initialization ravendb

初始化包含URL中的机器名的RavenDB文档库时,我遇到错误,并指定了非默认数据库,即Multitenant。 如果我没有指定默认数据库,我只能使store.Initialize()工作。

我的ConnectionString是http://somemachinename:8080;ResourceManagerId=d5723e19-92ad-4531-adad-8611e6e05c8b

以下代码失败

var store = new DocumentStore
{
    ConnectionStringName="RavenDB,
    DefaultDatabase="TNW_Grc_CLient",
    EnlistInDistributedTransactions=false
}
store.Initialize(); // fails with the following exception

收到此消息

  

消息="值不能为空。\ r \ n参数名称:g"

方案

a)第一次(如果数据库尚不存在)这个被调用, 调用成功,我注意到原始的http响应是:

HTTP/1.1 201 Created
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
Content-Encoding: gzip
Location: /docs/Raven/Databases/TNW_Grc_Client
Server: Microsoft-HTTPAPI/2.0
Raven-Server-Build: 427
Date: Fri, 26 Aug 2011 19:45:23 GMT
X-Charles-Received-Continue: HTTP/1.1 100 Continue
Expires: 0
Cache-Control: no-cache

{"Key":"Raven/Databases/TNW_Grc_Client","ETag":"00000000-0000-0300-0000-000000000001"}

b)第二次呼叫失败。调试一些,看来etag标头不是从中发送的 服务器但客户端代码预计会以某种方式预期:

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
Content-Encoding: gzip
Server: Microsoft-HTTPAPI/2.0
Raven-Server-Build: 427
Date: Fri, 26 Aug 2011 19:48:10 GMT
Expires: 0
Cache-Control: no-cache

{"Id":null,"Settings":{"Raven/DataDir":"~\\Tenants\\TNW_Grc_Client"}}

1 个答案:

答案 0 :(得分:1)

您可以在连接字符串或文档存储属性上指定值,而不是同时指定两者。