2012-05-21 30 views
1

与主要得到一个HTTP超时通过其在RavenDB客户端密钥获取项目时得到了与超时问题如何诊断和防止在RavenDB

System.Net.WebException: The operation has timed out 
Raven.Client.Connection.ServerClient.DirectGet(String serverUrl, String key) 

我相信这是因为索引是会在后台 - 但如果是这种情况,那么它不应该影响按键获取,如果它?

在执行此获取之前,我已经完成了一些插入,其中有6个字段被Lucene.Net.Analysis.Standard.StandardAnalyzer索引。这些字段最多只有300个字符。

我们在每个httprequest循环上使用一个会话,我认为这是正确的。然而,我们在httprequest中多次调用SaveChanges,并且正在考虑仅在httprequest循环结束时调用savechanges以遵循UnitOfWork模式。

什么是诊断此问题的最佳方法?

+0

我认为这个问题可能是由于每次httprequest调用SaveChanges多次。我们已更改为在请求周期结束时调用它,并将返回结果 – petenelson

回答

2

索引和请求处理线程之间没有关联。 一个不能影响另一个。 这是托管在另一台机器上吗?你在做一些可能会影响某些事情的调试吗? 你在EC2实例中吗?

+0

是的,它在EC2上 - 为什么?是在另一台打开8080的机器上。我们没有调试。在请求周期结束时应用SaveChanges似乎解决了这个问题 - 但我不知道为什么。 – petenelson