Убедитесь, что ваша проблема не только JIT или время загрузки. При первом вызове веб-сервис должен скомпилировать и загрузить сборки, которые могут быть дорогими. Если проблема сохраняется при последующих вызовах, проверьте настройки прокси.
У нас была такая же проблема. Наша задержка была намного значительнее вашей (всего 2 минуты на звонок). Мы вызывали веб-службу из службы Windows, которая работала как пользователь домена. Эта учетная запись пользователя, очевидно, имеет настройки прокси-сервера. Таким образом, для каждого запроса HttpRequest к локальному веб-сервису поддерживающая ServicePoint пыталась получить файл wpad.dat с несуществующего прокси-сервера. Время ожидания этого звонка составило 20 секунд. Хуже того, существует глобальная блокировка кода, которая выбирает прокси в библиотеках .net. Так что звонки складываются в ожидании паузы в сети. Служба, выполняющая вызовы, - это наш процесс очереди, который обрабатывает все наше асинхронное поведение. Таким образом, вся система резервируется.
Если вы хотите увидеть код, посмотрите System.Net.AutoWebProxyScriptEngine.GetProxies в Reflector.
Поскольку у меня нет прав на данную учетную запись, я исправил нашу проблему сегодня, добавив
в файл app.config.
Если ваш метод предназначен для вызова с помощью ajax, то вы должны правильно настроить браузер. Попробуйте отключить автоматическое определение настроек в Connections \ Lan Settings. Я немного огляделся в Интернете после того, как обнаружил проблему, и, по-видимому, в IE7 есть проблемы с задержкой, когда эта настройка включена. Если у вас есть прокси-сервер, введите вручную адрес сервера в том же диалоговом окне.