У меня есть операция службы WCF, которая просто выполняет LINQ-запрос к базе данных SQL, просматривая 1 из 35 записей, имеющих совпадающий Guid (это действительно так просто). Когда я вызываю этот метод из простого приложения-песочницы, он сразу возвращается. Однако, когда он работает в службе Windows, первый вызов метода занимает около 25 секунд (я беру метку времени до и после вызова), а второй вызов (полностью идентичный первому, сделан сразу после первый, только для целей тестирования) возвращается сразу.
Вызов происходит внутри делегата ThreadPool.QueueUserWorkItem с другими действиями, выполняемыми до и после него, и это единственная вещь во всем делегате, которая вообще задерживается.
Имеет ли задержка смысл или здесь что-то не так?
Обновление:
Я подтвердил, что проблема не в самом методе. Сначала я вызвал совершенно другой метод обслуживания, который имел эту задержку, и два вызова исходного метода сразу после того, как оба выполняются мгновенно. Таким образом, проблема заключается в том, что вызывает первый звонок на сервер.