欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

VS的IISExpress配置通过IP访问程序

程序员文章站 2022-08-19 23:07:46
今天同事想要通过他的电脑在局域网中调用我本地的接口,理论上我在本地启起来后给他对应的IP地址和端口号就可以了,所以我在自己电脑上试了一下吧localhost改成IP或127.0.0.1 试了一下......果然还是无法访问!!!通过localhost访问是有效的,但是通过本机IP甚至127.0.0. ......

  今天同事想要通过他的电脑在局域网中调用我本地的接口,理论上我在本地启起来后给他对应的ip地址和端口号就可以了,所以我在自己电脑上试了一下吧localhost改成ip或127.0.0.1 试了一下......果然还是无法访问!!!通过localhost访问是有效的,但是通过本机ip甚至127.0.0.1访问无效,报的错误是 400. the request hostname is invalid.

如下图:

VS的IISExpress配置通过IP访问程序VS的IISExpress配置通过IP访问程序

 

 

 

 

于是乎  度娘就告诉我,你这样是不行滴,你得像我这样搞....!!!

 

1.在状态栏中,选择iispress站点,右键选择显示所有应用程序

VS的IISExpress配置通过IP访问程序

 

 

 

 2.单击站点名称,在下面提示的路径中选择配置路径,打开applicationhost.config文件

VS的IISExpress配置通过IP访问程序

 

 

3.找到iisexpress的配置文件并打开applicationhost.config,找到如下代码:

<site name="website1" id="1" serverautostart="true">
      <application path="/">
           <virtualdirectory path="/" physicalpath="%iis_sites_home%\website1" />
      </application>
      <bindings>
           <binding protocol="http" bindinginformation=":31173:localhost" />
      </bindings>
</site>

 

 其中name是你web项目的名称,找到对应你项目的配置,然后在

<binding protocol="http" bindinginformation="*:31173:localhost" />

 后面加上

 <binding protocol="http" bindinginformation="*:31171:192.168.1.xx" />

VS的IISExpress配置通过IP访问程序

 

(端口号和ip都都改成自己的)

 

4.按上面改为后,当你通过ip地址访问时还是可能会出现400错误,如果出现,就采用下面的方法:

(1)以管理员身份打开cmd命令窗口
(2)输入如下命令:
netsh http add urlacl url=http://192.168.1.xx:31173/ user=everyone

VS的IISExpress配置通过IP访问程序

与上面改的ip和端口号对应,如果报错请确认是否是以管理员身份运行的cmd。 

通过命令,可以查看到已经添加进去的url了

netsh http show urlacl

VS的IISExpress配置通过IP访问程序

 

完成之后重启iisexpress,此时应该就可以使用ip地址访问了。

VS的IISExpress配置通过IP访问程序

 

 

5.完成上面两部之后,由于防火墙的原因,其他的电脑可能还无法访问你的服务器,如果出现这种情况,关闭防火墙(这里系统是win8.1)

  (1)控制面板(查看方式选择类别)->系统和安全->windows防火墙,在左侧选择高级设置
  (2)右击入站规则->新建规则->端口->特定本地端口处输入31171->允许连接->3个选项全选->输入新规则名称->完成 

 

现在外部程序就可以访问你的iisexpress了

 

6.最后呢,用完了也可以将其删除:

netsh http delete urlacl url=http://192.168.1.xx:31173/