Ravendb Долгое время отклика для запроса, пока был обработан на сервере очень быстро
Вопрос
Raven.Server запущен и привязан к порту 8022. Я инициализирую DataStore следующим образом:
var store = new DocumentStore() { Url = "http://localhost:8022" };
store.Initialize();
Тогда я делаю такой запрос:
using (var session = store.OpenSession())
{
Stopwatch watch = new Stopwatch();
watch.Start();
var result = session.LuceneQuery<Item>("Raven/DocumentsByEntityName")
.WhereEquals("Tag", "Items")
.ToList();
watch.Stop(); // watch.ElapsedMilliseconds == ~550 ms
return result;
}
А также watch.ElapsedMilliseconds
всегда ~ 550 мс. Но когда я смотрю на консоль RavendB, я вижу, что запрос был обработан в 3 мс:
Request # 170: GET - 3 ms - 200 - /indexes/Raven/DocumentsByEntityName?query=Tag%253A%255B%255BItems%255D%255D&start=0&pageSize=128
Таким образом, ~ 99,5% времени были потрачены не в Ravendb. В чем проблема? (Ravendb 147)
Когда я переключаюсь на самообе хостинг RavendB (то есть в качестве встроенного клиента) все в порядке (~ 3 мс).
Чтобы уточнить этот вопрос не в сети, HTTP отладчиков, DNS-серверы и т. Д. Я также проверил это:
Stopwatch watch = new Stopwatch();
watch.Start();
WebClient client = new WebClient();
var result = client.DownloadString("http://127.0.0.1:8022/indexes/Raven/DocumentsByEntityName?query=Tag%253A%255B%255BItems%255D%255D&start=0&pageSize=128");
watch.Stop(); // watch.ElapsedMilliseconds == ~3-10ms
Быстро. Но переключение на raven.client.lights весите увеличить время отклика в 200 раз (550-600 мс)
Решение
Проблема была из-за посредника на моем компьютере - NOD32. Если вы также используете его - снимите флажок следующий флажок:
Настройка -> Расширенная настройка -> Антивирус и антишпион -> Фильтрация протокола -> «Включить приложение протокальный контент фильтрации»
Простые отключения антивируса или брандмауэра нет помощь!
Другие советы
Может быть, бездействуя и, возможно, просто типы, но иногда самые резкие вещи могут водить нас орехи;
Ваше утверждение: «Raven.server начался и привязан к порту 8082. Отказ Я инициализирую DataStore следующим образом: "
Пример вашего кода гласит: «VAR Store = New DocumentStore () {URL =" http: // localhost:8022" };"
Порт в вашем названии 8082 и порт в вашем примере 8022.
Я понимаю, что ваш Typ - O не может быть в вашем актуальном коде, но никогда не болит, чтобы проверить.
«Мюс», говоря
п