使用Raven DB Bulk Insert的奇怪例外

时间:2015-06-23 16:26:59

标签: exception ravendb ravendb-http

我正在尝试使用RavenDB(3.0)并尝试使用批量插入功能。然而,尽管批量插入似乎有效,但我在完成后仍然会收到异常:

[b,c,d]

堆栈跟踪

An exception of type 'System.IO.EndOfStreamException' occurred in Raven.Client.Lightweight.dll but was not handled in user code

Additional information: Attempted to read past the end of the stream.

这是我的代码:

   at Raven.Client.Connection.ObservableLineStream.<Start>b__1(Task`1 task) in c:\Builds\RavenDB-Stable-3.0\Raven.Client.Lightweight\Connection\ObservableLineStream.cs:line 39
   at System.Threading.Tasks.ContinuationTaskFromResultTask`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()

奇怪的是数据被写入数据库(我可以在数据库浏览器中查看),但是我的代码中没有捕获异常 - 它被标记为尽管有 static void Main(string[] args) { try { using (var store = new DocumentStore { Url = "http://localhost:8080/", DefaultDatabase = "Northwind" }) { store.Initialize(); int total = 10000; using (var bulkInsert = store.BulkInsert()) { for (int i = 0; i < total; i++){ bulkInsert.Store(new Employee{ FirstName = "FirstName #" + i, LastName = "LastName #" + i}); } } } } catch (Exception ex) { Console.WriteLine(ex); } finally { Console.ReadLine(); } }

,仍未处理

我对于为什么会发生这种情况感到沮丧,更重要的是,我如何能够阻止它。有人有什么想法吗?

1 个答案:

答案 0 :(得分:2)

该异常来自我们用于批量插入的手表。完成后,我们关闭手表,抛出异常。 它在内部处理,不应对您的应用程序产生任何影响