Первый звонок на веб-сервис каждый день медленный - PullRequest
3 голосов
/ 22 июня 2009

При создании этого веб-сервиса и приложения, которое его вызывает, мы заметили, что первый вызов веб-сервиса каждый день очень медленный. Это даже будет время ожидания на несколько дней. Однако каждый звонок после этого прекрасно работает. Кто-нибудь может пролить свет на то, почему это может быть и как мы можем избавиться от этой боли?

Заранее спасибо!

Ответы [ 6 ]

8 голосов
/ 22 июня 2009

Если это веб-служба ASP.NET, это может быть CLR, инициализирующая, загружающая и проверяющая сборки в первый раз. Вы можете рассмотреть вопрос о предварительной компиляции

3 голосов
/ 22 июня 2009

Согласитесь с другими ответами о кешировании, инициализации и т. Д. Что касается обходного пути, одна из возможностей может заключаться в том, чтобы установить какую-то повседневную задачу (задание SQL Server, служба Windows, что-то еще?) Для имитации попадания в сервис каждый день, чтобы ваши пользователи не видели этот первый медленный запрос.

2 голосов
/ 23 июня 2009

Если это веб-служба ASP.NET, возможно, вы захотите проверить настройки пула приложений, в котором работает веб-служба, особенно время простоя, которое по умолчанию составляет 20 минут в IIS7.

Настройка времени ожидания IIS7

Даже если это не веб-служба ASP.NET, другие веб-серверы будут иметь аналогичные параметры конфигурации, которые необходимо настроить, чтобы веб-служба работала в течение ночи.

1 голос
/ 22 июня 2009

Можете ли вы повторить такое же поведение в вашей базе данных? Это может быть просто база данных, нуждающаяся в оптимизации запроса для первого запуска (может быть, это параметр сегодняшней даты?).

0 голосов
/ 22 июня 2009

Правило для оптимизации: не угадай. Вставьте профилирование, чтобы узнать, что именно медленно, а затем работайте, чтобы сделать это быстрее. Все, что уже опубликовано, дает отличные советы о том, с чего начать медлительность.

0 голосов
/ 22 июня 2009

Много ли статических конструкторов или кода настройки в классе Global.asax? Поскольку IIS периодически перезапускает рабочие процессы, код запуска может выполняться снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...