gpt4 book ai didi

c# - Chrome 驱动程序无法在 Azure Web 应用程序上运行

转载 作者:行者123 更新时间:2023-12-02 03:12:54 24 4
gpt4 key购买 nike

我使用了.NetCore2 App并尝试截取给定URL的屏幕截图。它在本地运行完美,但部署到 Azure 后在创建 Webdriver 时出现问题。

 at OpenQA.Selenium.DriverService..ctor(String servicePath, Int32 port, String driverServiceExecutableName, Uri driverServiceDownloadUrl)
↵ at OpenQA.Selenium.Chrome.ChromeDriverService..ctor(String executablePath, String executableFileName, Int32 port)
↵ at OpenQA.Selenium.Chrome.ChromeDriver..ctor(String chromeDriverDirectory, ChromeOptions options)
↵ at SceenshotApp.Service.Screenshot.TakeScreenshot(String url, Int32 width, Int32 height, Int32 delay) in D:\Projects\TFT\Bitbucket-Linkury\Website\Tools\ScreenshotAPI\DotNetCore\SceenshotApp\SceenshotApp\Service\Screenshot.cs:line 21
↵ at SceenshotApp.Controllers.HomeController.TakeScreenshot(String url, Int32 width, Int32 height, Int32 scale, Int32 delay) in D:\Projects\TFT\Bitbucket-Linkury\Website\Tools\ScreenshotAPI\DotNetCore\SceenshotApp\SceenshotApp\Controllers\HomeController.cs:line 51"

在我的代码下面

 public static string GetScreenshot(string url)
{
ChromeOptions options = new ChromeOptions();
var driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), options);
driver.Manage().Window.Size = new System.Drawing.Size(1000, 768);
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromMilliseconds(100);
driver.Navigate().GoToUrl(url);
driver.Close();
driver.Quit();
return path;
}

如何在 Azure 上使用 Chrome 驱动程序?

最佳答案

正如@IvanYang所说,Azure App Service for Windows不支持Selenium,如下图来自Azure Web App sandbox .

enter image description here

原因是Win32k.sys (User32/GDI32) Restrictions

enter image description here

但是,您可以尝试将 .net core 应用程序部署到基于 docker 镜像的 Linux 上的 Azure 应用服务。

所以您可以按照快速入门教程Create an ASP.NET Core app in App Service on Linux进行操作迁移当前的 Linux 应用程序。由于 Selenium 需要 headless chrome,因此您必须在 docker 镜像中安装 chromiumchrome 或其 headless 发行版和 webdriver 或写入首先是Dockerfile,请引用官方文档Tutorial: Build a custom image and run in App Service from a private registry来了解它。

作为引用,有很多对您有帮助的博客,您可以通过Google/Bing搜索,例如Selenium in Docker with DotNetCore Chrome in Linux and Headless Mode .

希望有帮助。

关于c# - Chrome 驱动程序无法在 Azure Web 应用程序上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57105911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com