Назад | Перейти на главную страницу

Проблема с COM + DLL в IIS 6.0

У нас есть COM + DLL в IIS 6, поддерживающая классическое приложение ASP. Мы успешно отладили до такой степени, что знаем, что DLL вызывает зависания рабочего процесса (вызов объекта никогда не возвращается). Какие варианты конфигурации существуют для решения этой проблемы?

Решение, которое мы нашли, заключалось в том, чтобы ограничить время, в течение которого COM + позволяет вызову выполняться, а затем завершает его.

Мы нашли это событие в журнале событий, который его выдал:

Средняя продолжительность звонка превысила 10 минут. Если это не ожидаемое поведение, см. Статью 910904 в базе знаний Microsoft по адресу http://support.microsoft.com для получения подробной информации о том, как использовать функцию COM + AutoDump для автоматического создания файлов дампа и / или завершения процесса, если проблема возникает снова. ID серверного приложения: {20D49551-DF30-4A60-B553-CAD7B97F2153} ID экземпляра серверного приложения: {45DB1F97-8995-481C-94EE-CA891E446202} Имя серверного приложения: <-REDACTED->

Что привело нас к этому kb.

Затем мы изменили настройки на HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ COM3 \ AutoDump согласно кб. Проблема все еще возникает, но теперь она не вешает весь сервер, зависает только один пользователь.

Вы пробовали работать в режиме совместимости с IIS5?

  1. Щелкните правой кнопкой мыши узел «Веб-сайты» в пользовательском интерфейсе диспетчера IIS.
  2. Выберите вкладку «Сервис» на странице свойств.
  3. Будет установлен флажок, определяющий, запускает ли IIS6 «службу WWW в режиме изоляции IIS5» или нет. Убедитесь, что IIS6 работает в режиме изоляции рабочих процессов IIS5.