iis - Parallels 桌面 : access local IIS web application from OS X (host)

标签 iis localhost virtual-machine firewall parallels

我正在使用 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。

总之:

  • 在 Parallels 中,确保您的网络类型设置为“共享网络”并且启用“与 Windows 共享 Mac 应用程序”
  • 在您的 Windows VM 中,打开 PowerShell,输入 ipconfig ,然后复制您的 VM 的 IPv4 地址。然后打开设置,进入系统>关于,并复制你的VM的设备名称
  • 在 macOS 中,将条目添加到您的 /etc/hosts将 VM 的 IP 地址映射到其设备名称的文件,例如10.211.55.3 your-device-name
  • 返回 Windows VM,在 Visual Studio 项目的文件夹中,编辑 <binding>键入 .vs/config/applicationhost.config (注意 .vs 是一个隐藏文件夹)使用 VM 的设备名称而不是 localhost ,例如<binding protocol="http" bindingInformation="*:1234:your-device-name" />
  • 以管理员身份打开 PowerShell 并运行以下命令以启用外部访问,使用您的 VM 的设备名称和第 4 步中的端口:netsh http add urlacl url=http://your-device-name:1234/ user=everyone
  • 打开 Windows 防火墙并为您的项目添加新的入站和出站规则。对于这两个规则,选择“端口”作为规则类型,选择“TCP”作为协议(protocol),输入第 4 步中的端口,然后选择“允许连接”
  • 在 Visual Studio 中,转到项目的属性,单击“Web”选项卡,然后将项目 URL 更改为使用 Windows 设备名称而不是 localhost ,例如http://your-device-name:1234/ .选中“覆盖应用程序根 URL”复选框并再次输入相同的 URL
  • 使用“在 Mac 中打开”浏览器调试您的项目。如果您没有看到此选项,请单击“浏览方式...”,然后单击“添加...”,然后添加一个指向 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/

    相关文章:

    c# - 在反向代理后面部署 IdentityServer4

    localhost - 访问由另一台虚拟机托管在一台虚拟机上的本地主机

    linux - 远程 linux 服务器到远程 linux 服务器大型稀疏文件复制 - 如何?

    python - 指定主机时,FastAPI/uvicorn 不工作

    macos - 在 Mac OS X 上通过模式将地址重定向到本地主机

    powershell - 使用批处理文件 (.bat) 运行 PS1 脚本

    azure - 调整虚拟机内存或磁盘大小是否会导致虚拟机中已安装的应用程序丢失?

    html - 指向特定 Angular 2.0 SPA 状态的外部链接不起作用

    iis - 尝试同步站点时,MSDeploy触发“401访问被拒绝”错误

    iis - 如何监控通过请求发送的客户端证书?