我正在使用 Parallels Desktop 在 OS X 上运行 Windows 10(网络处于共享模式)。我需要从主机访问在 Visual Studio 上创建并在 IIS 10 上运行的 Web 应用程序。例如对于在 http://localhost:1654 上运行在 Windows 上的通用应用程序我想通过 Mac 浏览器访问它,例如 http://[ip_virtual_machine]:1654 .
我做的第一件事是完全关闭 Windows 防火墙,在公共(public)和专用网络上禁用它,并在 services.msc 中禁用防火墙服务。
接下来我检查了主机和虚拟机的 IP 地址。在 Mac 上运行 ifconfig 我得到虚拟机的 IP 地址是 10.211.55.2 而在 Windows 上运行 ipconfig 我得到虚拟机的 IP 地址是 10.211.55.3(网关为 10.211.55.1)。
我尝试使用 http://10.211.55.2:1654/ 访问 Web 应用程序。和 http://10.211.55.3:1654/但没有运气。
前者我得到一个错误的请求 - 无效的主机名响应,而后者我得到 ERR_CONNECTION_REFUSED。
如果防火墙仍在幕后做某事,我还添加了一个入站规则以允许端口 1654 的连接,但结果相同。
我还注意到一件事:在 C:\Windows\System32\inetsrv\config\applicationHost.config 的 applicationhost 文件中,没有任何对我在 Visual Studio 中创建的 Web 应用程序的引用。当我在 IIS 上的 Visual Studio 中运行 Web 应用程序时,AFAIK 应该将绑定(bind)添加到 applicationhost 文件中,但是我的任何 Web 应用程序都没有条目。我可以在 IIS 上遇到一些问题吗?
另一件事:反之亦然。我可以使用 http://10.211.55.2:[port] 从虚拟机访问我 Mac 上的 node.js 本地服务器.
但我需要从 Mac 访问 Windows IIS。我怎样才能做到这一点?
最佳答案
接受的答案对我不起作用,但在遵循 here 概述的步骤后,我终于成功了.我的设置包括在 macOS 10.14.2 上运行的 Parallels 14 和在 Windows 10 上运行的 Visual Studio 2017。
总之:
ipconfig
,然后复制您的 VM 的 IPv4 地址。然后打开设置,进入系统>关于,并复制你的VM的设备名称/etc/hosts
将 VM 的 IP 地址映射到其设备名称的文件,例如10.211.55.3 your-device-name
<binding>
键入 .vs/config/applicationhost.config
(注意 .vs
是一个隐藏文件夹)使用 VM 的设备名称而不是 localhost
,例如<binding protocol="http" bindingInformation="*:1234:your-device-name" />
netsh http add urlacl url=http://your-device-name:1234/ user=everyone
localhost
,例如http://your-device-name:1234/
.选中“覆盖应用程序根 URL”复选框并再次输入相同的 URL C:\Program Files (x86)\Parallels\Parallels Tools\SIA\SharedIntApp.exe
的条目调试后,您的应用程序将在 Safari(或任何您的默认 Mac 浏览器)中启动,地址为
http://your-device-name:1234
!
关于iis - Parallels 桌面 : access local IIS web application from OS X (host),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41975887/