在我的网络上的其他机器上查看我的 IIS 托管站点

Posted

技术标签:

【中文标题】在我的网络上的其他机器上查看我的 IIS 托管站点【英文标题】:Viewing my IIS hosted site on other machines on my network 【发布时间】:2011-01-12 03:27:54 【问题描述】:

在家里,我有一个简单的网络设置,包含 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 防火墙,但并不高兴。

和典型的网络开发人员一样,我的硬件/网络技能很差。

谁能看出我哪里出错了?

【问题讨论】:

你试过连接MACHINE-NAME吗? 【参考方案1】:

正如其他人所说,您的防火墙需要配置为在 TCP 端口 80接受来电

在 win 7+ 中(简单的魔法方式)

    转到 具有高级安全性的 Windows 防火墙 入站规则 -> 操作 -> 新规则 选择预定义单选按钮,然后选择最后一项 - 万维网服务 (HTTP) 单击下一步并保留后续步骤(允许 连接)

因为 outbound 流量(从服务器到外部世界)默认情况下是允许的。这意味着例如 Web 服务器发送回外部用户的 http 响应并要求

但是入站流量(从外部世界到服务器)被阻止默认,就像用户从浏览器发出的网络请求无法访问网络一样默认情况下服务器,您必须打开它。

您还可以在this page 仔细查看入站和出站规则

【讨论】:

如果还是不行,那么可以自行关闭防火墙,至少对于开发环境来说。 @Contristo,我的观点完全正确 :) @hitesh ,你只需要通过你打开的防火墙打开80端口。如果您甚至没有添加端口的权限,您通常应该要求相关支持团队为您打开此服务器的此端口 @Hitesh:您可以将站点托管在 80 以外的端口上,并且只允许您使用该端口。请参阅下面的答案,了解如何操作。 快速访问高级安全Windows防火墙:Win+R然后输入mmc.exe wf.msc【参考方案2】:

如果您在 IIS 中的特定端口(如 4321)上托管网站,那么您也必须允许该端口通过 Windows 防火墙。以下是我与 imanabidi's answer 一起遵循的步骤,以使其对我有用:

    Windows 防火墙 > 高级设置 入站规则 > 新规则 选择端口 > 下一步 特定的本地端口 > 添加您要允许的端口 允许所有连接 输入名称和一些描述,以便您以后记住 完成

【讨论】:

【参考方案3】:

首先,尝试连接到服务器的 LAN IP。如果 IIS 仅设置一个网站,您的网站很可能会弹出。

如果您想通过名称访问它,您必须在您要查看站点的每台客户端 PC 的 HOSTS 文件中添加一个条目(显然不是 127.0.0.1,而是您的本地 IP 地址服务器)。

此外,您的防火墙需要配置为接受端口 80 上的传入呼叫。

这通常是设置 DNS 服务更有意义的地方,您可以集中注册“mysite.dev”等名称,而无需涉足主机文件。但那是另一回事,属于 superuser.com 或 serverfault.com。

【讨论】:

防火墙是这里最重要的部分。【参考方案4】:

打开防火墙设置。然后搜索类似的东西 - 允许程序或功能允许通过防火墙。如果未选中列表中的万维网服务 (HTTP),请选中它并重新启动系统。

我们的机器已准备好接受入站请求。

【讨论】:

【参考方案5】:

很晚的答案,但我会强调一些要点,因为几年前我不得不通过网络设置我的 IIS 站点

    您的两台机器应连接到同一网络(同一无线网络即可) 通过 IP 168.192.x.xhttp://his-pc-name 访问您的远程计算机(不要忘记 http 部分) 这将在远程机器上为默认的 IIS 页面提供服务(与通过 localhost 提供的服务相同)。如果您想为另一个站点提供服务器,[您必须将其设为默认值] first1。

通过检查应该为默认站点提供服务的localhost,确保您的 IIS 在远程计算机上运行良好。还要确保您的防火墙配置为允许通过端口 80 进行连接,或者您可以暂时禁用防火墙以进行测试。

【讨论】:

使用 IP 而不是我的工作站名称有效。干杯!【参考方案6】:

除了修改你的防火墙,别忘了添加端口绑定!

打开$(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/

【讨论】:

端口绑定对我来说是重要的一步!我使用的是 IIS Express,默认情况下不允许通过 IP 地址进行访问(仅限本地主机)。因此,如果没有这一步,评分较高的答案对我不起作用!【参考方案7】:
 Control Panel>System and Security>Windows Firewall>Allowed Programs-> then check all " World Wide Web Services(Http) tab". 

它对我有用

【讨论】:

【参考方案8】:

可能为时已晚,但是对于将来可能遇到此类问题的任何其他人,对于您想要与服务器建立的任何连接(在这种情况下是托管 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

你完成了

【讨论】:

【参考方案9】:

安装防病毒软件后,我遇到了这个问题,我注意到我的防火墙自动设置为开启,现在我只需设置防火墙关闭,它就解决了我的问题。希望它会帮助某人:)

【讨论】:

【参考方案10】:

127.0.0.1 总是指向本地主机。在您的家庭网络上,您应该有一个由您的互联网路由器(dsl/cablemodem/whatever)分配的 IP 地址。您需要将您的网站绑定到该地址。然后,您应该能够使用机器名称访问该网站,但我建议实际编辑相关客户端计算机的主机文件,以将特定名称指向该计算机。 hosts 文件位于 c:\windows\system32\drivers\etc\hosts(使用记事本),条目如下所示:

192.168.1.1     mycomputername

【讨论】:

【参考方案11】:

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/

【讨论】:

【参考方案12】:

您必须执行以下步骤。

转到 IIS -> 网站-> 点击您的网站 -> 在操作中单击编辑权限 -> 安全 -> 点击添加 -> 高级 -> 立即查找 -> 添加其中的所有用户 -> 并将所有权限授予其他用户 -> 点击确定。

如果您正确执行上述操作,则可以使用您的域访问您的网站。 建议 - 不要将主机名添加到您的站点,它有时会产生问题。因此,请使用您的机器 IP 地址托管您的网站。

【讨论】:

以上是关于在我的网络上的其他机器上查看我的 IIS 托管站点的主要内容,如果未能解决你的问题,请参考以下文章

使用 IIS Express 托管网站(临时)

从移动设备查看localhost网站

如何在Azure VM上配置IIS站点以接受来自其他外部IP地址的请求?

*** 发生在一个 IIS 站点上,但不在另一个站点上

基于每个站点的 PHP 错误报告 IIS7

在本地 IIS 上投射接收器会产生 ERR_CONNECTION_REFUSED?