我正在使用Kestrel在本地端口上托管.NET Core HTTP应用程序,该端口在某些基于浏览器的UI测试的可用端口上,但是当尝试使用带有BrowserStackLocal.exe
和Safari的带有BrowserStack Automate的真实iOS设备访问它时一贯拒绝加载页面。
我已经尝试了here记录的IP范围的各个部分,但是都没有成功。桌面浏览器(Windows上的Chrome,IE,Edge和Firefox,macOS Mojave上的Safari)和真实的Android设备可以正常工作。
我还尝试使用机器的本地IP地址和完全限定的域名(FQDN),如here所述,但由于Windows防火墙即使通过BrowserStack Automate也可以阻止连接,因此两者均无法移植。地址。
端口80不是可行的解决方案,因为开发人员的计算机将使用该端口在其计算机上运行IIS,因此它不能用于其他目的。
鉴于以下限制,什么是可行的解决方案?
dotnet test
)。答案 0 :(得分:4)
在iOS设备上,尝试解析http://bs-local.com:5000而不是http://localhost:5000。
答案 1 :(得分:2)
您可以使用http://bs-local.com:5000访问该站点,但是请确保在配置中使用webpack
禁用disableHostCheck: true
的主机检查。
对于有角度的cli用户,要禁用主机检查,您需要使用--disable-host-check
之类的ng serve --port 4200 --disable-host-check
答案 2 :(得分:1)
这来自BrowserStack的支持:
a)在Safari上
以前,运行iOS 10及更高版本的iOS设备不支持使用URL中带有“ localhost / 127.0.0.1”的本地网站。
但是,为了确保您的网站在URL中加载了“ localhost”,我们现在在这些设备上将URL修改为http://bs-local.com。这有助于以预期的方式加载您的网站。这里也有提到。
在您共享的屏幕快照中,您还可以看到重定向到bs-local.com。
似乎您的本地主机网站配置为只能通过特定的主机名(例如“本地主机”)访问。因此,您将面临所报告的错误。
为了能够在iOS设备上通过Safari测试本地站点,我建议将本地站点配置为可通过本地计算机的私有IP地址访问。
完成后,您可以使用http://
我也鼓励您通读本指南,以了解如何实现上述目标:https://www.notion.so/Testing-localhost-on-iOS-devices-1ceb5e274cee46d7ac538b71304919b4
b)在Chrome上
由于Safari的限制,iOS设备默认不支持在Chrome上测试localhost网站。
使用域“ localhost”会出现问题。我们也正在积极尝试寻找这种行为的替代方法。
但是,与此同时,您也可以通过iOS设备上的Chrome浏览器通过上述私有IP地址访问本地主机网站。
对配置进行必要的更改以允许通过私有IP地址访问本地主机网站后,也可以在iOS上通过Chrome浏览器测试本地主机网站。
如果您需要任何进一步的帮助,请随时与我们联系!
注意:专用IP地址与127.0.0.1不同。您可以使用本文来标识计算机的专用IP地址。
关于, 里汉 BrowserStack支持
答案 3 :(得分:0)
您是否尝试使用计算机(托管Web的IP)的IP地址更改“ localhost”?
例如-如果托管应用程序/网页的计算机的IP是22.22.22.22,则在测试中将http://localhost:3000/index.html更改为http://22.22.22.22:3000/index.html
他们在这里提到了相同的内容-https://www.browserstack.com/question/663
答案 4 :(得分:0)
如果您使用的是Angular CLI,请运行命令
ng serve --host 0.0.0.0 --port xxxx
这将确保您能够使用指定的IP和端口访问应用程序。完成后,您应该能够使用浏览器堆栈使用IP和端口而不是localhost的iPhone设备浏览器访问您的应用程序。