ASMX все еще работает медленно после «Создать сборку сериализации» - PullRequest
1 голос
/ 03 июня 2010

Этот вопрос относится к: Медленный первый запрос веб-службы ASMX .

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

Ответы [ 2 ]

0 голосов
/ 03 июня 2010

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

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

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

0 голосов
/ 03 июня 2010

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

...