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


101

在家里,我有一个简单的网络设置,其中包含2台计算机。

在一台计算机上,我有一个托管IIS7的站点。localhost/index.htm我没有在标准地址中添加HOSTS指向该域-的本地IP(127.0.0.1)的文件中的条目www.mysite.dev

我可以www.mysite.dev毫无问题地访问该网站。

我想做的是能够从网络上的其他计算机上查看此站点。

最初,我认为可以使用类似URL的URL来完成此操作 MACHINE-NAME/www.mysite.dev,但是连接总是超时。但我可以ping通MACHINE-NAME而不会出现问题。

出于测试目的,我在两台计算机上都禁用了Windows防火墙,但并不高兴。

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

谁能看到我要去哪里错了?


您是否尝试过仅连接MACHINE-NAME
拉撒路

Answers:


155

正如其他人所说,您的防火墙需要配置为接受TCP端口80上的传入呼叫

赢7+(简单的巫术方式)

  1. 使用高级安全性进入Windows防火墙
  2. 入站规则 ->操作->新规则
  3. 选择“ 预定义”单选按钮,然后选择最后一项- 万维网服务(HTTP)
  4. 单击“下一步”,保留原样的下一步(允许连接

  • 因为 默认情况下允许出站(从服务器到外部世界)的出站流量。这意味着,例如,Web服务器正在发回外部用户和请求的http响应

  • 但是入站默认情况下 会阻止流量(从外部世界发送到服务器)就像来自其浏览器的用户Web请求默认情况下无法到达Web服务器一样,您必须打开它。

您也可以在此页面上仔细查看入站和出站规则


如果仍然无法使用,则可以关闭防火墙本身,至少在开发环境中可以。
USER_NAME 2015年

@Contristo,完全符合我的观点:)
Bryan Rayner

1
@hitesh,您只需要通过打开的防火墙打开端口80。如果您甚至没有添加端口的权限,通常应该请相关支持团队为您为此服务器打开此端口
Iman

1
@Hitesh:您可以将网站托管在80以外的端口上,并只允许您使用该端口。请参阅下面有关如何执行此操作的答案。
Syed Ali Taqi

1
快速访问具有高级安全性的Windows防火墙:Win + R,然后键入mmc.exe wf.msc
facepalm42

35

如果您将网站托管在IIS中的特定端口(例如4321)上,那么您也必须允许该端口通过Windows防火墙。这是我遵循的步骤以及imanabidi的答案,以使其对我有效:

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

10

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

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

另外,需要将防火墙配置为在端口80上接受传入呼叫。

通常,在这一点上,更有意义的是设置DNS服务,您可以集中注册“ mysite.dev”之类的名称,而不必涉猎主机文件。但这是另一回事,属于superuser.com或serverfault.com。


1
防火墙是这里最重要的部分。
Pierre

6

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

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


3

答案很晚,但是我要强调一点,因为几年前我不得不处理它,它跨网络设置了IIS站点

  1. 两台机器都应连接到同一网络(可以使用相同的无线网络)
  2. 通过IP 168.192.x.x或通过访问远程计算机http://his-pc-name(不要忘记http部分)
  3. 这将为远程计算机上的默认IIS页面提供服务器(与通过localhost提供的页面相同)。如果要为另一个站点提供服务器,请[必须设置为默认值]首先1

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


使用IP代替我的工作站名称是可行的。干杯!
hatsrumandcode

3

除了修改防火墙之外,别忘了也添加端口绑定!

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


2
端口绑定对我来说是重要的一步!我使用的是IIS Express,默认情况下不允许通过IP地址(仅本地主机)进行访问。因此,如果没有这一步,那么评分较高的答案将对我不起作用!
JonoB

2
 Control Panel>System and Security>Windows Firewall>Allowed Programs-> then check all " World Wide Web Services(Http) tab". 

它为我工作


2

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

和你做


1

安装防病毒程序后,我遇到了这个问题,我注意到防火墙自动设置为打开,现在我将防火墙设置为关闭 ,它解决了我的问题。希望它能帮助某人:)


0

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

192.168.1.1     mycomputername

@JenishZinzuvadiya:什么?您的评论没有任何意义。
乔尔·埃瑟顿

-1

您必须执行以下步骤。

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.