码字,杂谈

IIS Express 通过IP访问的方法和坑

最近一直在写前后端分离的项目。后端使用ASP.NET Core生成的服务器,运行时默认vs使用iis express运行调试。但是默认路径是https://localhost:44342,(注:port可能不一样),如果自己测试,那么本机无所谓,但如果多人协作,后端在本机运行就显得有些尴尬。我希望在一台测试服务器上运行,其他前端直接连接。

修改项目中的配置

直接修改项目中的配置项,如图:

《IIS Express 通过IP访问的方法和坑》

然后服务器直接起不来了。。。

修改IISExpress配置

网上查询后,基本很统一的方法,于是照着修改:

找到C:\Users\Administrator\Documents\IISExpress\config路径下的applicationhost.config文件,打开编辑,找到

<site name="WebSite1" id="1" serverAutoStart="true">
    <application path="/">
        <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:8080:localhost" />
    </bindings>
</site>

<bindings>中添加如下:

<binding protocol="http" bindingInformation="*:44341:192.168.1.7" />
<binding protocol="https" bindingInformation="*:44342:192.168.1.7" />

保存关闭,然后打开cmd/powershell,输入:

netsh http add urlacl url=http://192.168.1.7:44341 user=everyone
netsh http add urlacl url=https://192.168.1.7:44342 user=everyone

运行完毕后,重启IIS,管理员模式启动vs,运行Server。

网上的教程大致如上,然后就OK了,然后的然后,我就惊奇的发现,无论测试服务机还是其他电脑,一律503。。。有点抓狂。。。

修改工作目录下的.vs配置

最后,网上寻觅到了答案,不仅需要按照上面的修改,还需要修改工作目录下的.vs文件夹中的配置文件。

找到.vs\Web Server\config\applicationhost.config文件,打开编辑,里面的修改方法和上面一样,在site节点的<bindings>里同样添加如下两句:

<binding protocol="http" bindingInformation="*:44341:192.168.1.7" />
<binding protocol="https" bindingInformation="*:44342:192.168.1.7" />

这次,重启iis,管理员模式重启vs,一切真的OK了。。。

如图效果,http和https的模式都可以正常访问:

《IIS Express 通过IP访问的方法和坑》

《IIS Express 通过IP访问的方法和坑》

这样就可以愉快地和别人一起专注前端了。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注