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