2010-06-03 2 views
1

Этот вопрос связан с: ASMX Web Service slow first request.ASMX Все еще медленно после «Генерация сериализации»

Я унаследовал прокси-сервер для устаревшего сервиса ASMX. В основном, как указано выше, первая производительность звонка буквально в 10 раз медленнее, чем последующие вызовы. Я пошел вперед и включил «Сгенерировать сборку сериализации» в проекте, который содержит прокси. На самом деле сборка «сериализаторов» создается. Тем не менее, я не видел никакого увеличения производительности вообще. Нужно ли мне что-либо делать, кроме того, что сборка сериализаторов находится в каталоге bin для клиента? Должен ли я «связывать» прокси-сервер с сборкой «serializers» во время генерации прокси (wsdl.exe)? Наверное, я застрял в этом. J Сондерс, где у? :)

ответ

0

На самом деле существует гораздо больше времени для запуска, чем просто создание сборочных сборок. Создание AppDomain, JITing всех методов, анализ файлов конфигурации и т. Д. Может занять довольно много времени.

Вы фактически не говорите Сколько стоит «10 раз» на самом деле, но 10-15 секунд для первого запроса не является чем-то необычным в моем опыте.

Если вы используете Windows Server 2008, вы можете попробовать Application Warm-Up, который в основном представляет собой инструмент, который автоматически обрабатывает запросы на страницы при переработке рабочего процесса IIS или перезагрузке сервера и так далее. Но на самом деле нетрудно написать такой сценарий, поскольку код4life говорит (приложение Warm-Up имеет функции, которые заставляют его работать немного лучше, чем вы можете «вручную», но ручной способ по-прежнему довольно эффективен в моем опыте).

+0

Да, это примерно 6 или 7 секунд для первого запроса. Однако я просто удивлен тем, что добавление сборок сериализации не имеет никакого эффекта. Приложение Нагревание не является вариантом на данный момент. Спасибо за ответ – Buzzer

0

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

Смежные вопросы