RavenDB复制问题-找不到数据库

RavenDB复制问题-找不到数据库,ravendb,Ravendb,已遵循文档要求,但无法通过WAN为RavenDB进行复制 情景: 使用Raven build#2261 Master DB:具有本地名称“it23” 从属数据库:远程名称为“”(xxx用于 (隐私) 在这两台服务器上,我都创建了一个名为“TonyTest”的数据库 在Master db上,我使用以下文档设置了复制: { "Destinations": [ { "Url": "http://184.169.xxx.xxx:8080", "Username":

已遵循文档要求,但无法通过WAN为RavenDB进行复制

情景:

  • 使用Raven build#2261
  • Master DB:具有本地名称“it23”
  • 从属数据库:远程名称为“”(xxx用于 (隐私)
在这两台服务器上,我都创建了一个名为“TonyTest”的数据库

在Master db上,我使用以下文档设置了复制:

{
  "Destinations": [
    {
      "Url": "http://184.169.xxx.xxx:8080",
      "Username": null,
      "Password": null,
      "Domain": null,
      "ApiKey": null,
      "Database": "TonyTest",
      "TransitiveReplicationBehavior": "None",
      "IgnoredClient": false,
      "Disabled": false,
      "ClientVisibleUrl": null
    }
  ]
}
当使用相同的URL浏览到远程服务器时,RavendbStudio将正确启动,我可以看到TestTony数据库。这似乎证实了URL的格式正确

但是,主数据库会立即生成一个显示故障的文档:

{   
  "Destination": "http://184.169.xxx.xxx:8080/databases/TonyTest",  
  "FailureCount": 142 
}
当我们查看远程数据库的日志时,我们看到有与主数据库的通信,但复制没有完成

Debug   3/9/2013 12:19:44 AM    Document with key 'Raven/Replication/Sources/http://it23:8080/databases/TonyTest' was not found     Raven.Storage.Esent.StorageActions.DocumentStorageActions
看起来远程服务器说找不到db“TonyTest”,但它已创建

有人能看出我的错误吗

根据Ayende的请求,以下是在尝试设置复制后从本地服务器获取的一些日志示例(出于隐私考虑,我再次将IPs替换为xxx)。我们在本地数据库的日志中没有看到任何错误。我们在远程数据库日志中看到错误弹出。这似乎意味着本地数据库正在连接到远程数据库,但复制没有发生。以下是本地日志:

Debug   3/11/2013 3:17:00 PM    No work was found, workerWorkCounter: 17626, for: ReducingExecuter, will wait for additional work       Raven.Database.Indexing.WorkContext
Debug   3/11/2013 3:17:00 PM    Going to index 1 documents in IndexName: Raven/DocumentsByEntityName, LastIndexedEtag: 00000001-0000-0100-0000-000000002265: (Raven/Replication/Destinations/184.169.xxx.xxx8080databasesTonyTest)      Raven.Database.Indexing.AbstractIndexingExecuter
Debug   3/11/2013 3:17:00 PM    Document with key 'Raven/Studio/PriorityColumns' was not found      Raven.Storage.Esent.StorageActions.DocumentStorageActions
Debug   3/11/2013 3:16:56 PM    Going to index 1 documents in IndexName: Raven/DocumentsByEntityName, LastIndexedEtag: 00000001-0000-0100-0000-000000002256: (Raven/Replication/Destinations/184.169.xxx.xxx8080databasesTonyTest)      Raven.Database.Indexing.AbstractIndexingExecuter
太平洋时间11月3日8:24更新 我现在在主/本地raven日志中看到以下错误:

无法关闭响应

System.AggregateException: One or more errors occurred. ---> System.Net.HttpListenerException: An operation was attempted on a nonexistent network connection
   at System.Net.HttpResponseStream.Dispose(Boolean disposing)
   at System.IO.Stream.Close()
   at Raven.Database.Util.Streams.BufferPoolStream.Dispose(Boolean disposing) in c:\Builds\RavenDB-Stable\Raven.Database\Util\Streams\BufferPoolStream.cs:line 144
   at System.IO.Stream.Close()
   at Raven.Database.Impl.ExceptionAggregator.Execute(Action action) in c:\Builds\RavenDB-Stable\Raven.Database\Impl\ExceptionAggregator.cs:line 23
   --- End of inner exception stack trace ---
   at Raven.Database.Impl.ExceptionAggregator.ThrowIfNeeded() in c:\Builds\RavenDB-Stable\Raven.Database\Impl\ExceptionAggregator.cs:line 38
   at Raven.Database.Server.Abstractions.HttpListenerResponseAdapter.Close() in c:\Builds\RavenDB-Stable\Raven.Database\Server\Abstractions\HttpListenerResponseAdapter.cs:line 94
   at Raven.Database.Server.Abstractions.HttpListenerContextAdpater.FinalizeResponse() in c:\Builds\RavenDB-Stable\Raven.Database\Server\Abstractions\HttpListenerContextAdpater.cs:line 92
---> (Inner Exception #0) System.Net.HttpListenerException (0x80004005): An operation was attempted on a nonexistent network connection
   at System.Net.HttpResponseStream.Dispose(Boolean disposing)
   at System.IO.Stream.Close()
   at Raven.Database.Util.Streams.BufferPoolStream.Dispose(Boolean disposing) in c:\Builds\RavenDB-Stable\Raven.Database\Util\Streams\BufferPoolStream.cs:line 144
   at System.IO.Stream.Close()
   at Raven.Database.Impl.ExceptionAggregator.Execute(Action action) in c:\Builds\RavenDB-Stable\Raven.Database\Impl\ExceptionAggregator.cs:line 23<---
System.AggregateException:发生一个或多个错误。-->System.Net.HttpListenerException:尝试在不存在的网络连接上执行操作
位于System.Net.HttpResponseStream.Dispose(布尔处理)
在System.IO.Stream.Close()处
在c:\Builds\RavenDB Stable\Raven.Database\Util\Streams\BufferPoolStream.Dispose中的Raven.Database.Util.Streams.BufferPoolStream.Dispose(布尔处理)处:第144行
在System.IO.Stream.Close()处
在c:\Builds\RavenDB Stable\Raven.Database\Impl\ExceptionAggregator.cs中的Raven.Database.Impl.ExceptionAggregator.Execute(Action-Action)处:第23行
---内部异常堆栈跟踪的结束---
在c:\Builds\RavenDB Stable\Raven.Database\Impl\ExceptionAggregator.cs中的Raven.Database.Impl.ExceptionAggregator.throwifneed()处:第38行
在c:\Builds\RavenDB Stable\Raven.Database\Server\Abstractions\httplistenerresponsedapter.Close()中的Raven.Database.Server.Abstractions.httplistenerresponsedapter.Close()处:第94行
在c:\Builds\RavenDB Stable\Raven.Database\Server\Abstractions\HttpListenerContextAdpater.FinalizeResponse()中的Raven.Database.Server.Abstractions.HttpListenerContextAdpater.cs:第92行
--->(内部异常#0)System.Net.HttpListenerException(0x80004005):尝试在不存在的网络连接上执行操作
位于System.Net.HttpResponseStream.Dispose(布尔处理)
在System.IO.Stream.Close()处
在c:\Builds\RavenDB Stable\Raven.Database\Util\Streams\BufferPoolStream.Dispose中的Raven.Database.Util.Streams.BufferPoolStream.Dispose(布尔处理)处:第144行
在System.IO.Stream.Close()处

在c:\Builds\RavenDB Stable\Raven.Database\Impl\ExceptionAggregator.cs中的Raven.Database.Impl.ExceptionAggregator.Execute(Action-Action)中:第23行解决了这个问题。尽管我不理解原因

在从属服务器上,必须将raven.server.exe配置文件设置为具有以下密钥:

<add key="Raven/AnonymousAccess" value="All"/>

违约是

<add key="Raven/AnonymousAccess" value="Get"/>.
当主设备和从设备位于同一台机器上时,默认设置可以正常工作。但当主设备和从设备位于不同的机器上(在LAN上或在WAN上)时,复制失败


我在主机上找不到指向其问题的日志条目。我能看到的唯一日志条目是在从机上,上面说找不到Raven/Replication/Sources/。我意识到主机正在连接到从机,但从机无法创建“Raven/Replication/Sources”/远程文档。

解决了这个问题。虽然我不明白为什么

在从属服务器上,必须将raven.server.exe配置文件设置为具有以下密钥:

<add key="Raven/AnonymousAccess" value="All"/>

违约是

<add key="Raven/AnonymousAccess" value="Get"/>.
当主设备和从设备在同一台机器上时,默认设置工作正常。但是,当主服务器和从服务器分别位于不同的计算机上(在LAN上或跨WAN)时,复制失败


我在主机上找不到指向其问题的日志条目。我能看到的唯一日志条目是在从机上,它说没有找到Raven/Replication/Sources/。我意识到主服务器正在连接从服务器,但从服务器无法远程创建“Raven/Replication/Sources/”文档。

目标日志不相关。您在源代码中看到的错误是什么?你好,Ayende。我已经复制了上面的一些本地/源日志。我们似乎没有看到我认识到的任何错误。有什么想法吗?另一个更新,我在我的电脑上创建了第二个RavenDB实例,并且能够完美地复制。通过WAN进行复制需要哪些特殊配置?另一个更新。我已打开防火墙上的所有端口,这些端口将允许我的远程/从属数据库“查看”主数据库。还是不走运。我得到帮助的唯一日志是远程/从:未找到键为“Raven/Replication/Sources/”的文档。it23是我的主/本地数据库的网络名称。我是否需要使用“ClientVisibleUrl”属性重新指向主服务器。我找不到有关如何使用该属性的文档。当我在LAN上复制时,会立即在从属服务器上创建“Raven/Replication/Sources/”。但在WAN上,该文件不会被创建。这可能是权限问题吗?目标日志不相关。您在源代码中看到的错误是什么?你好,Ayende。我已经复制了上面的一些本地/源日志。我们似乎看不到有任何人