Унаследованные приложения C++ с иногда печально известными проблемами утечки памяти необходимо вызывать из приложения Windows на базе Windows. .Net время сбора мусора не поддается определению, и когда-то объект C++ уничтожается или не уничтожается «вовремя», создавая непредсказуемые результаты и обычно разбивая веб-приложение C#. Каков наилучший способ скопировать объекты C++ в стек сбора мусора как можно чаще, но не так часто, как удалить ссылку .Net на COM-объект. Имейте в виду, что объекты COM могут порождать под-объекты, поэтому подсчет ссылок .Net объектов COM может меняться только с помощью вызова функции и не обязательно для создания экземпляра.Как управлять COM-объектами в. Net Web Application
Поскольку происходит утечка памяти, и объекты COM не очищаются, производительность ухудшается, пока она не настолько медленна, что IIS несколько раз запускается сам по себе, а затем сработает. Перезапуск IIS устраняет проблему до следующего раза. Периодические перезагрузки помогают, но напряженный день может вызвать это в течение рабочего дня.
Мне пришлось решить эту проблему с использованием .Net 1.1 пару лет назад. Удивление, если у кого-то было мое решение или лучшее. Это не ASP.NET. Это DLL .Net.
Конечный результат не был полностью удовлетворительным, и веб-сервер разбился каждые несколько месяцев.
Я склонен согласиться с тем, что это сложно или невозможно с .Net 1.1, но у нас есть возможность перейти на .Net 2.0. Является ли это по своей сути лучше или есть новые функции в этом, которые помогут? – ssorrrell