Веб-сервис умирает через час - PullRequest
1 голос
/ 02 мая 2011

Недавно мы обновили наш основной продукт до проекта ASP.NET 4.0 (обновлен с 2.0). Этот проект является основным источником трафика для веб-службы, остальные формы в этом выпуске не изменились. Веб-сервис работает без проблем уже пару лет.

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

Мы изменили его так, чтобы веб-сервис также был в 4.0 Framework. Однако это ничего не сделало. Другие возможные попытки, которые мы попробовали, также потерпели неудачу, такие как создание службы вместо веб-ссылки и обновление проверки нашего сертификата, чтобы также использовать надлежащие / текущие методы инфраструктуры.

Хуже всего то, что в создаваемой программе просмотра событий нет журнала, поэтому у меня нет сведений о том, в чем проблема. Мы применили комплексное решение для повторного использования пула приложений каждые 20 минут (перекомпиляция занимает секунду, так как веб-служба очень мала), и пока кажется, что это не так, но мы скорее решили бы проблему, чем полагались на это. , Так есть ли у кого-нибудь дополнительные идеи / предложения относительно того, откуда может возникнуть наша проблема? Или кто-нибудь испытывает что-нибудь подобное?

Оба проекта существуют в одной веб-ферме, и все машины используют IIS 6 32 бит.

Спасибо!

edit- Еще немного информации, веб-сервис имеет несколько основных функций:

1 - принимает документы XML, загружает их в набор данных, затем обновляет внутренние БД отправленной информацией - и просто возвращает значение true

2 - получает запрос на обработанные данные через XML и запрашивает у БД его ответ на XML и отправляет его

3 - получает подтверждение того, что данные, запрошенные на шаге 2, были получены и удаляет их из БД

4 - включает функцию, которая обновляет БД, чтобы мы могли отслеживать некоторые приложения в наших клиентских системах.

1 Ответ

0 голосов
/ 02 мая 2011

Прежде всего, вы можете воспроизвести проблему на устройстве разработчика (используя какую-либо платформу нагрузочного тестирования для имитации рабочей нагрузки)?

Если так, то это звучит как проблема с вашим кодом. Затем вы можете сделать еще один шаг и профилировать код на сервере разработчика, чтобы точно определить проблему.

Если это не вариант, я бы запустил Process Explorer и наблюдал за ресурсами сервера с течением времени. Я не уверен, что делает ваш сервис, но звучит так, будто он может раскручивать потоки, а потом не убирать за собой.

Может быть полезно, если вы разместили пример кода, чтобы мы могли увидеть, что могло повлиять на изменение с .NET 2.0 на 4.0.

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