rev*_*evy 4 iis firewall parallels localhost virtual-machine
我正在使用Parallels Desktop在OS X上运行Windows 10(网络处于共享模式)。我需要从主机访问在Visual Studio上创建并在IIS 10上运行的Web应用程序。例如,对于在Windows上http:// localhost:1654上运行的通用应用程序,我想使用类似http:// [ip_virtual_machine]:1654的 Mac浏览器对其进行访问。
我要做的第一件事是完全关闭Windows防火墙,在公用和专用网络上禁用它,并在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/和http://10.211.55.3:1654/访问Web应用程序,但是没有运气。对于前者,我收到错误请求-无效的主机名响应,而对于后者,我得到ERR_CONNECTION_REFUSED。
万一防火墙仍然在做某些事情,我还添加了一个入站规则,以允许连接端口1654,但结果相同。
我还注意到一件事:在C:\ Windows \ System32 \ inetsrv \ config \ applicationHost.config中的applicationhost文件中,没有对在Visual Studio中创建的Web应用程序的任何引用。AFAIK当我在IIS上的Visual Studio中运行Web应用程序时,应将绑定添加到applicationhost文件中,但是我的任何Web应用程序都没有条目。IIS可能有问题吗?
另一件事:反过来工作。我可以使用http://10.211.55.2:[port]从虚拟机访问Mac上的node.js本地服务器。
但是我需要从Mac访问Windows IIS。我怎样才能做到这一点?
接受的答案对我不起作用,但按照此处概述的步骤后我终于成功了。我的设置包括在 macOS 10.14.2 上运行的 Parallels 14 和在 Windows 10 上运行的 Visual Studio 2017。
总之:
ipconfig并复制 VM 的 IPv4 地址。然后打开“设置”,转到“系统”>“关于”,然后复制虚拟机的设备名称/etc/hosts,将虚拟机的 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=everyonelocalhost,例如http://your-device-name:1234/。选中“覆盖应用程序根 URL”框并再次输入相同的 URLC:\Program Files (x86)\Parallels\Parallels Tools\SIA\SharedIntApp.exe调试后,您的应用程序将在 Safari(或您的默认 Mac 浏览器)中启动,网址为http://your-device-name:1234!
好吧,我知道了。其他步骤是:
1)以管理员身份打开CMD或Powershell。为您需要的端口添加URL ACL条目:
netsh http add urlacl url=http://*:[port]/ user=everyone
Run Code Online (Sandbox Code Playgroud)
2)在本例中,带有绑定的applicationhost文件直接位于Visual Studio项目文件夹中。具体来说,它位于.vs / config / applicationhost.config中。在文本编辑器中打开文件,然后找到包含应用程序绑定信息的行,例如
<bindings>
<binding protocol="http" bindingInformation="*:1654:localhost" />
</bindings>
Run Code Online (Sandbox Code Playgroud)
使用您的虚拟机的IP添加另一个条目,如下所示:
<bindings>
<binding protocol="http" bindingInformation="*:1654:localhost" />
<binding protocol="http" bindingInformation="*:1654:10.211.55.3" />
</bindings>
Run Code Online (Sandbox Code Playgroud)
3)(**可选:可能不需要***)在applicationhost文件中,找到条目
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
Run Code Online (Sandbox Code Playgroud)
并将其更改为
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
Run Code Online (Sandbox Code Playgroud)
现在,我可以使用http://10.211.55.3:1654地址从Mac访问在IIS上运行的Web应用程序。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
3068 次 |
| 最近记录: |