我已经成功地将我的应用程序部署到Azure Web App。它使用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我已经尝试了我在互联网上看到的所有东西,但是如果我用这个参数--remote-debugging option=XXXX解决这个消息,那么我会得到以下错误:
OpenQA.Selenium.WebDriverException: unknown error: Chrome failed to start: exited normally
(chrome not reachable)我猜这是因为此端口在Azure中未打开...
有人曾经面对过这个问题,并且已经解决了吗?
Pd:在本地环境(我的pc或自己的服务器)中,它可以工作。
发布于 2020-01-22 23:59:55
这个问题是由于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等的完全访问。
有关此主题的更多详细信息,请查看以下文档:
https://stackoverflow.com/questions/59828311
复制相似问题