У нас есть 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?