Как программно управлять несколькими браузерами (управление aXWebBrowser) из одного процесса приложения winforms, ориентированного на один и тот же удаленный веб-сайт, но каждый браузер находится в своей области сеанса с удаленным сайтом?
Цели. Создать приложение, которое автоматизирует использование веб-сайта. Цель состоит в том, чтобы приложение выполняло работу до 5 пользователей, взаимодействующих с браузером на одном и том же веб-сайте.
Очевидные проблемы. Каждый экземпляр браузера делится своими «сеансовыми» данными, отправленными ему удаленным веб-сайтом. В результате различные браузеры не могут действовать так, как это сделали бы реальные пользователи. Независимо от того, сколько различных элементов управления aXWebBrowser создается, каждый из них теряет свой контекст сеанса и использует контекст сеанса, установленный последним/последним/самым последним созданным браузером. Другими словами, последний запущенный элемент управления уничтожает установленный контекст сеанса любого предшествующего ему элемента управления.
Уже пробовали — добавление одного из следующих ключей реестра в «hkcu\software\microsoft\internet explorer\main»: TabProcGrowth=DWORD:0, FrameMerging=DWORD:0, SessionMerging=DWORD:0. При запуске IE8 с моего значка на рабочем столе (вне приложения) это работает нормально, IE8 ведет себя так, как хотелось бы. Однако при запуске приложения с использованием элементов управления axWebBrowser оно работает, параметры реестра, похоже, не влияют на элементы управления axWebBrowser. Другие способы увидеть нежелательное поведение вне приложения включают в себя: щелчок «Новый сеанс» в меню «Файл» IE8 и запуск iexplore.exe с параметром -nomerge. Они не работают в приложении, поскольку элемент управления axWebBrowser использует Wininet для связи.
Ограничения. Значительный объем кода уже написан и работает с использованием элемента управления aXWebBrowser (автоматизируемый веб-браузер Internet Explorer ActiveX), поэтому идеальное решение не требует перезаписи кода с использованием нового элемента управления. - После того, как решение будет найдено, приложение отобразит окно(я) браузера для пользователя рабочей станции. - Приложение winforms (.NET 2.0) размещает элементы управления - Все браузеры ориентированы на один и тот же удаленный веб-сайт.