我已经成功地将我的应用程序部署到了Azure Web App。它使用带有Chrome的Selenium WebDriver(便携式版本,因为我需要二进制文件(,但是当我尝试使用此组件时,出现以下错误:
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:homesitewwwrootPortableGoogleChromePortable.exe
我已经尝试了我在互联网上看到的所有内容,但是如果我用这个论点解决这条消息, --远程调试选项=XXXX 然后我收到以下错误:
OpenQA.Selenium.WebDriverException: unknown error: Chrome failed to start: exited normally
(chrome not reachable)
我认为这是因为此端口未在 Azure 中打开...
有人遇到过这个问题,并且解决了它吗?
Pd:在本地环境(我的电脑或自己的服务器(中,它可以工作。
此问题是由于 Azure WebApps 沙盒限制 - 标准/本机 Azure Web 应用在称为沙盒的安全环境中运行。每个应用程序都在自己的沙箱内运行,将其执行与同一台计算机上的其他实例隔离开来,并提供额外的安全性和隐私性,否则将无法使用。你可以将基于容器的 Azure 应用服务用于你的方案。
添加有关此主题的更多信息:
如本文档中所述 - Azure Web App sandbox - 不支持的框架 - PhantomJS/Selenium:尝试连接到本地地址,并且还使用 GDI。
通过互联网访问应用程序的唯一方法是通过已经暴露的HTTP(80(和HTTPS(443(TCP端口;应用程序可能不会在其他端口上侦听来自互联网的数据包。
如果你的应用使用任何 COM 组件,则需要在托管代码中重写这些组件,并与站点或应用程序一起部署。此外,如果应用无法直接迁移到应用服务,请考虑使用 Windows 容器的应用服务,它允许使用 GAC、COM 组件、MSI、完全访问 .NET FX API、DirectX 等。
有关此主题的更多详细信息,请查看以下文档:
在 Azure 应用服务中运行自定义 Linux 容器
在 Azure 中运行自定义 Windows 容器(预览版(