Azure с ошибками Selenium WebDriver - PullRequest
0 голосов
/ 20 января 2020

Я успешно развернул свое приложение в Azure Веб-приложении. Он использует Selenium WebDriver с Chrome (портативная версия, потому что мне нужны двоичные файлы), но когда я пытаюсь использовать этот компонент, я получаю следующую ошибку:

OpenQA.Selenium.WebDriverException: unknown error: Chrome failed to start: exited normally
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location D:\home\site\wwwroot\Portable\GoogleChromePortable.exe

Я уже перепробовал все, что видел inte rnet, но если я решу это сообщение с этим аргументом, --remote-debugging option = XXXX, то я получу следующую ошибку:

OpenQA.Selenium.WebDriverException: unknown error: Chrome failed to start: exited normally
  (chrome not reachable)

Я догадываюсь, что это потому, что этот порт не открыт в Azure ...

Кто-то сталкивался с этой проблемой и решил ее?

Pd: В локальной среде (мой p c или собственный сервер) это работает.

1 Ответ

0 голосов
/ 22 января 2020

Проблема связана с ограничениями Azure WebApps Sandbox - стандартные / собственные Azure Web Apps работают в защищенной среде, называемой песочницей. Каждое приложение запускается внутри собственной изолированной программной среды, изолируя его выполнение от других экземпляров на том же компьютере, а также обеспечивая дополнительную степень безопасности и конфиденциальности, которые в противном случае были бы недоступны. Вы можете использовать на основе контейнера Azure Служба приложений для вашего сценария.

Добавление дополнительной информации по этой теме c:

Как уже упоминалось в этом документе - Azure Песочница веб-приложения - Неподдерживаемые фреймворки -PhantomJS / Selenium: пытается подключаться к локальному адресу, а также использовать GDI.

Единственный способ получить доступ к приложению через inte rnet - через уже выставленные порты HTTP (80) и HTTPS (443) TCP; приложения могут не прослушивать на других портах пакеты, поступающие из inte rnet.

Если ваше приложение использует какие-либо компоненты COM, их необходимо переписать в управляемом коде и развернуть вместе с сайтом или приложением. Кроме того, если ваше приложение не может быть перенесено непосредственно в Службу приложений, рассмотрите Службу приложений с использованием Windows Контейнеров, что позволяет использовать GA C, компоненты COM, MSI, полный доступ к. NET FX API, DirectX и подробнее.

Ознакомьтесь с этими документами для получения более подробной информации по этой теме c:

Запустите пользовательский контейнер Linux в Azure Служба приложений

Запуск пользовательского Windows контейнера в Azure (предварительная версия)

...