我正在使用Parallels Desktop在OS X上运行Windows 10(网络处于SHARED模式)。我需要访问在Visual Studio上创建并在主机上在IIS 10上运行的Web应用程序。例如,对于在http://localhost:1654上在Windows上运行的通用应用程序,我想通过类似http://[ip_virtual_machine]:1654的内容从Mac浏览器访问它。
我做的第一件事就是完全关闭Windows防火墙,在公共和专用网络上禁用它,并禁用services.msc中的防火墙服务。 接下来,我检查了主机和虚拟机的IP地址。在Mac上运行ifconfig我在Windows上运行ipconfig时得到虚拟机的IP地址是10.211.55.2我知道VM的IP地址是10.211.55.3(网关10.211.55.1)。
我尝试使用http://10.211.55.2:1654/和http://10.211.55.3:1654/访问网络应用程序,但没有运气。 对于前者,我得到一个错误的请求 - 无效的主机名响应,而后者我得到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。我怎么能这样做?
答案 0 :(得分:5)
好的我工作了。 其他步骤是:
1)以管理员身份打开CMD或Powershell。为您需要的端口添加URL ACL条目:
netsh http add urlacl url=http://*:[port]/ user=everyone
2)在我的案例中带有绑定的applicationhost文件直接位于Visual Studio项目文件夹中。具体来说,它位于.vs / config / applicationhost.config。 在文本编辑器中打开文件,找到包含应用程序绑定信息的行,如
<bindings>
<binding protocol="http" bindingInformation="*:1654:localhost" />
</bindings>
使用虚拟机的IP添加另一个条目,如下所示:
<bindings>
<binding protocol="http" bindingInformation="*:1654:localhost" />
<binding protocol="http" bindingInformation="*:1654:10.211.55.3" />
</bindings>
3)(**可选:可能没有必要***)在applicationhost文件中,找到条目
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
并将其更改为
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
现在,我可以使用http://10.211.55.3:1654地址从Mac访问在IIS上运行的网络应用。
希望这有帮助。
答案 1 :(得分:1)
接受的答案对我不起作用,但是在遵循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
调试后,您的应用将在http://your-device-name:1234
的Safari(或任何默认的Mac浏览器)中启动!
答案 2 :(得分:0)
答案 3 :(得分:0)
只需添加:当使用asp.net core和kestrel(在Parallels内),并且想要从Host mac连接到正在运行的服务器时,可以使用来宾Windows计算机的本地IP地址运行服务器。因此,请执行IPCONFIG并获取本地IP地址:
WebHost
.CreateDefaultBuilder()
.UseStartup(startupType)
.UseUrls("https://10.211.55.3:5001")
.ConfigureSettings(servicesToAdd)
.Build()
.Run();
这将允许您从HOST mac连接到例如https://10.211.55.3:5001/api/values