Я создал HTML-страницу 5, которая обеспечивает важные функции на стороне сервера. К сожалению, он должен быть запущен в браузере Html 5 (Chrome, IE9 или Firefox) с холстом для получения нужных мне результатов. Он полностью автономен, принимает необходимые параметры через URL-адрес и готов к закрытию, когда событие OnLoad готово к отправке. Пока все хорошо.
Следующий процесс должен быть автоматизирован (без участия глаз и взаимодействия) и запускаться из веб-службы (а не из браузера). В идеале я не хочу тратить лишние циклы на занятое ожидание или задерживать результат, ожидая длительные периоды времени, просто надеясь, что процесс завершится. Мне нужно:
- Откройте браузер (желательно Chrome) с URL, используя C #.
- Подождите, пока страница полностью не загрузится, в идеале - получение какого-либо обратного вызова.
- Закройте страницу браузера, когда закончите, снова с помощью C #.
Мы пытались использовать IE9. Есть поддержка C # для запуска IE9, подождите, пока не занято, и изящно закройте браузер; тем не менее, страница загружает ресурсы асинхронно (способа обойти это невозможно), и поэтому мы получаем сигнал о том, что она больше не занята во время загрузки ресурса, а не после завершения страницы. Добавление занятого ожидания потребует значительных циклов ЦП на стороне сервера.
Простой вызов Create Process был бы хорош, но работал бы только в том случае, если бы браузер мог закрыть себя с помощью некоторого html - но благодаря мерам безопасности в браузерах я не могу найти надежный способ использования html-команд для закрытия браузер, который был запущен из командной строки (я видел, что вы можете закрыть вкладки, созданные с уже открытой страницы - только Firefox, но это не помогает).
Кто-нибудь знает, как мне достичь этой цели? Опять же - нет никакого участия человека в каком-либо процессе, никакие человеческие глаза никогда не увидят страницу и не будут с ней взаимодействовать. Страница запускается только на сервере и никогда не будет развернута на клиентском компьютере.