初始化包含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"}}
答案 0 :(得分:1)
您可以在连接字符串或文档存储属性上指定值,而不是同时指定两者。