来自XAMPP,使用Apache服务器,我习惯只需在联网计算机上测试我的网站,只需在所需联网计算机的地址栏上输入IPaddress
:PortNumber
即可。
然后在使用VS2017进行开发时,我发现默认情况下不可能。虽然它在localhost中工作正常,但任何联网的计算机都无法访问该网站。我需要访问什么来更改设置,以便我可以将它暴露给端口8012而不是127.0.0.1:8012?
我认为这是问题所在。
答案 0 :(得分:0)
我能够通过更改
中的绑定值来解决此问题applicationhost.config
- VS2015以后,可以在单个项目文件夹
中找到它%ProjectFolder%/.vs/config/
- 2015年之前的VS,可在
中找到%USER%/Documents/IISExpress/config/
如果您熟悉XAMPP,则设置类似于%XAMPP%/apache/conf/httpd.conf
*:3940:locahost
,这使得它只能用于运行VS的计算机。<bindings>
<binding protocol="http" bindingInformation="*:3940:localhost" />
</bindings>
<bindings>
<binding protocol="http" bindingInformation="*:3940:*" />
</bindings>
bindingInformation="*:3940:"
代替bindingInformation="*:3940:*"
如果在所有这些之后,它仍然不起作用,则可能是@Mukesh在comment中指出的防火墙问题。
- 只需ping目标设备即可快速找到防火墙问题。
- 如果ping成功但不允许端口,则以高级模式打开防火墙
- 打开RUN(Windows + R)
- 输入firewall.cpl
- 点击高级设置
- 点击入站规则
- 创建新规则
- 将所需的端口添加到规则中
- 端口&gt;特定的本地端口:
3940
&gt;允许连接&gt;检查所有(域名,私人,公共)&gt;为您的规则命名:ExampleRule
&gt;完成- 您可以将
3940
替换为所需的端口号或端口范围。也可以选择所有可能的端口。- 可选: 虽然客户端计算机中不需要进行任何操作,但您可能需要配置防火墙入站规则以接受所有入站连接
- 如果它不是防火墙问题,它可能完全不同。也许你得到400错误页面,或503错误。以下SO问题帮助我解决了这些问题(虽然我不得不在以后恢复ACL限额)。我希望这对将来的某个人有用
- IIS Express Configuration
- Change binding, ACL and Port forwarding
- HTTP 400 Bad Request Error
- 此^的解决方案是here
- 503 Service Unavailable Error
- 有时只需在
中创建绑定条目即可解决此问题applicationhost.config
- 其他时候,它的重复绑定问题。并且您需要在这些时间删除绑定条目。如果您正在项目文件夹中编辑
applicationhost.config
,那么只保留一个站点和绑定信息是可以的。- 对于我的特定情况,我必须使用此
netsh http add urlacl url=http://192.168.10.3:3940/ user=everyone
恢复此操作netsh http delete urlacl url=http://192.168.10.3:3940/
,因为我在尝试隧道时遇到了502 Bad Gateway错误。- 要记住的事情:
- 请记住在每次更改后正确重启IISExpress。通常VS会自行完成此操作。只需仔细检查任何正在运行的实例。
- 此外,始终在管理模式下运行VS.这通常会清除许多问题,并允许所有子进程(如IISExpress)以提升的权限模式启动,以避免权限错误。