在家里我有一个包含2台机器的简单网络设置。
在一台机器上,我有一个用IIS7托管的网站。我在localhost/index.htm
文件中添加了一个条目,而不是标准HOSTS
地址,该条目将本地IP(127.0.0.1)指向此域 - www.mysite.dev
。
我可以www.mysite.dev
访问该网站,没有任何问题。
我想要做的是能够从网络上的其他计算机上查看此网站。
最初,我认为这可以通过这样的URL来完成
MACHINE-NAME/www.mysite.dev
,但连接总是超时。但我可以毫无问题地ping MACHINE-NAME
。
出于测试目的,我已在两台机器上禁用了Windows防火墙,但没有任何乐趣。
与典型的Web开发人员一样,我的硬件/网络技能非常差。
谁能看到我出错的地方?
答案 0 :(得分:147)
正如其他人所说,您的防火墙需要配置为接听来电 TCP端口80 。
以win 7+(简单的魔法方式)
因为出站流量(从服务器到外部)允许默认情况下。例如,表示网络服务器发送回外部用户的http响应和请求
但入站流量(源自外部世界的服务器)被阻止默认,例如源自其浏览器的用户网络请求无法访问网络默认情况下,您必须打开它。
您还可以在this page
详细了解入站和出站规则答案 1 :(得分:30)
如果您在IIS中的特定端口上托管网站,例如 4321 ,那么您也必须通过Windows防火墙允许此端口。这是我跟随 imanabidi's answer 所采取的步骤,让它对我有用:
答案 2 :(得分:8)
首先,尝试连接到服务器的LAN IP。如果IIS只设置了一个网站,则可能会弹出您的网站。
如果您想通过名称访问它,您必须在每个要查看该站点的客户端PC的HOSTS文件中添加一个条目(显然不是127.0.0.1,而是添加到您的本地IP地址)服务器)。
此外,您的防火墙需要配置为接受端口80上的来电。
这通常是设置DNS服务更有意义的一点,您可以集中注册名称如“mysite.dev”,而无需涉及主机文件。但这是一个不同的故事,属于superuser.com或serverfault.com。
答案 3 :(得分:6)
打开防火墙设置。然后搜索类似的内容 - 允许程序或功能允许通过防火墙。如果未选中列表万维网服务(HTTP),请检查它并重新启动系统。
我们的机器都设置为接受入站请求。
答案 4 :(得分:3)
非常晚回答但我会强调一些观点,因为我在几年前必须处理它,在网络上设置我的IIS网站
168.192.x.x
或http://his-pc-name
访问您的远程计算机(不要忘记http部分)通过选中应提供默认站点的localhost
,确保您的IIS在远程计算机上正常运行。还要确保您的防火墙配置为允许通过端口80进行连接,或者您可以暂时禁用防火墙以进行测试。
答案 5 :(得分:2)
Control Panel>System and Security>Windows Firewall>Allowed Programs-> then check all " World Wide Web Services(Http) tab".
它为我工作
答案 6 :(得分:1)
安装防病毒软件后,我遇到了这个问题,我注意到我的防火墙自动设置为打开,现在我只是设置了防火墙,它解决了我的问题。希望它会帮助某人:)
答案 7 :(得分:1)
可能会迟到,但对于将来可能会遇到此问题的任何其他人,您想要对服务器进行的任何连接(在这种情况下是承载Web应用程序的计算机,无论是否为iis或xampp)您需要允许通过将在防火墙中使用的特定端口的连接或流量
1. Go to Windows Firewall -> Advanced settings
2. Click Inbound Rules -> Then New Rule
3. Select Port -> Next
4. Specific local ports -> Add the Port you want to allow
5. Allow All Connections
6. Enter a name and a description for to help you remember later on
你完成了
答案 8 :(得分:1)
除了修改防火墙之外,别忘了也添加端口绑定!
打开$(SolutionDir)\.vs\config\applicationHost.config
并找到绑定定义,应该是这样
<sites>
<site name="Samples.Html5.Web" id="1">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Git\Samples.Html5.Web" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:63000:localhost" />
</bindings>
</site>
...
</sites>
只需添加额外的行以反映您的计算机IP和指定的端口
<bindings>
<binding protocol="http" bindingInformation="*:63000:localhost" />
<binding protocol="http" bindingInformation="*:63000:10.0.0.201" />
</bindings>
来源:https://blog.falafel.com/expose-iis-express-site-local-network/
答案 9 :(得分:0)
127.0.0.1始终指向localhost。在您的家庭网络上,您应该有一个由您的互联网路由器分配的IP地址(dsl / cablemodem / whatever)。您需要将您的网站绑定到此地址。然后,您应该能够使用计算机名称访问该网站,但我建议实际编辑相关客户端计算机的hosts文件,以指定该计算机上的特定名称。 hosts文件可以在c:\ windows \ system32 \ drivers \ etc \ hosts(使用记事本)中找到,条目如下:
192.168.1.1 mycomputername
答案 10 :(得分:0)
2021 年的完整解决方案。
与IP的绑定不起作用。星号解决了问题。
<bindings>
<binding protocol="http" bindingInformation="*:63000:localhost" />
<binding protocol="http" bindingInformation="*:63000:*" />
</bindings>
https://www.theancientscroll.com/tech/4-steps-aspnet-web-apps-lan/753/
答案 11 :(得分:-1)
您必须执行以下步骤。
转到IIS - &gt;
Sites-&GT;
点击您的网站 - &gt;
在行动中点击编辑权限 - &gt;
安全 - &gt;
点击ADD - &gt;
高级 - &gt;
立即查找 - &gt;
添加其中的所有用户 - &gt;
并授予其他用户所有权限 - &gt;
点击确定。
如果您正确地执行了上述操作,则可以使用您的域访问您的网站 建议 - 不要在您的站点上添加主机名,否则会在某个时候创建问题。所以请使用您的机器IP地址托管您的网站。