Это широко известная старая проблема с элементом управления .NET Webbrowser.
Резюме: Наличие элемента управления веб-браузером .NET «Переход на страницу» увеличивает использование памяти, которая никогда не освобождается.
Воспроизведите утечку памяти: добавьте в форму элемент управления WebBrowser. Используйте его для перехода на любые страницы, которые вам нужны. about: blank работает, прокрутка изображений Google вниз до тех пор, пока ваше использование не станет более 100 МБ, а затем просмотр в другом месте, чтобы заметить, что почти вся память не освобождена, - более яркая демонстрация.
Мои текущие требования к приложению включают запуск его в течение длительного времени с отображением ограниченного окна браузера IE7. Запуск самого IE7 с какой-то ублюдочной настройкой хуков, BHO и групповых политик тоже нежелателен, хотя в настоящее время это выглядит как запасной вариант. Встраивание браузера в приложение Windows Forms - это. Я не могу использовать другой браузер. Требуется IE7.
Предыдущие темы и статьи, относящиеся к этой известной утечке памяти:
Часто предлагаемые исправления, которые НЕ РАБОТАЮТ:
Память очищается при закрытии и перезапуске всего приложения.
Я готов написать собственный элемент управления браузером напрямую в COM или Windows API, если это наверняка решит проблему. Конечно, я бы предпочел менее сложное исправление; Я бы предпочел не спускаться на более низкие уровни, чтобы что-то сделать, потому что я не хочу изобретать колесо с точки зрения поддерживаемых функций браузера. Избавьтесь от дублирования функций IE7 и нестандартного поведения в браузере с индивидуальным дизайном.
Помощь?