Я написал веб-бота, который использует Selenium Framework для сканирования.Установил ChromeDriver 72.0.3626.69, а также скачал Chromium 72.0.3626.121.Приложение инициализирует ChromeDriver с помощью этого включенного двоичного файла Chromium (а НЕ локально установленного двоичного файла Chrome).Все это прекрасно работает на моей машине локально.
Я пытался перенести приложение в Azure Functions.Я написал функцию, проверил ее, и она отлично работает локально.Но после публикации в функциях Azure происходит сбой из-за примерно 182 ошибок типа:
Была предпринята попытка получить доступ к сокету способом, запрещенным его правами доступа
Я знаю, что это происходит из-за превышения пределов TCP-соединения в песочнице Azure, но единственной попыткой здесь было создание экземпляра ChromeDriver (даже не перемещаться нигде!)
Вот снимок экрана функции Azureжурнал вызовов.
Эта ошибка появляется около 182 раз подряд, и это в основном просто попытка создать экземпляр браузера (или экземпляр ChromeDriver,если быть точным - не могу быть уверен, что проблема связана с Chromium или ChromeDriver.
Вопрос: У кого-нибудь возникали проблемы с созданием ChromeDriver / Chromium стольких (явно чрезмерных) соединенийпри запуске?И что могло бы помочь избежать этого.
Если это поможет, то в основном это фрагмент кода, который вылетает в последней строке:
ChromeOptions options = new ChromeOptions();
options.BinaryLocation = this.chromePath;
options.AddArgument("no-sandbox");
options.AddArgument("disable-infobars");
options.AddArgument("--disable-extensions");
if (this.headlessMode)
{
options.AddArgument("headless");
}
options.AddUserProfilePreference("profile.default_content_setting_values.images", 2);
Log.LogInformation("Chrome options compiled. Creating ChromeDriverService...");
var driverService = ChromeDriverService.CreateDefaultService(this.driverPath);
driver = new ChromeDriver(driverService, options, timeout);