[C# ASP.NET]如何让IIS Express支持外部(局域网)连接
声明:本文为原创,转载时请注明出处,谢谢!
一、搭建环境:
1、系统:win10 1809
2、ide:visual studio 2017
3、framework: 4.6.1
4、语言:c# (asp.net mvc)
二、新建一个mvc网站,打开visual studio(笔者这里使用的是visual studio 2017),使用mvc模板按照默认项目名称新建一个webapplication(笔者这里使用的是webapplication1),如下图所示:
三、打开本项目的iis配置文件,位置位于:"c:\users\{计算机用户名}\source\repos\{项目名称}\.vs\config\applicationhost.config",
笔者这里的位置是:"c:\users\cnc\source\repos\webapplication1\.vs\config\applicationhost.config",这里以笔者的为准,其他的项目大同小异,以下不再作说明;
我们导航到<sites>节点,内容如下:
<sites> <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> <site name="webapplication1" id="2"> <application path="/" applicationpool="clr4integratedapppool"> <virtualdirectory path="/" physicalpath="c:\users\cnc\source\repos\webapplication1\webapplication1" /> </application> <bindings> <binding protocol="http" bindinginformation="*:63684:localhost" /> </bindings> </site> <sitedefaults> <logfile logformat="w3c" directory="%iis_user_home%\logs" /> <tracefailedrequestslogging directory="%iis_user_home%\tracelogfiles" enabled="true" maxlogfilesizekb="1024" /> </sitedefaults> <applicationdefaults applicationpool="clr4integratedapppool" /> <virtualdirectorydefaults allowsubdirconfig="true" /> </sites>
找到与本项目相关的site,我们可以从 bindinginformation="*:63684:localhost" 看到,这里绑定的ip为localhost,端口号为63684。
我们可以使用appcmd命令行提示符来显示以上信息:
1)将“c:\program files (x86)\iis express”(64位)或“c:\program files\iis express”(32位)加入到系统环境变量,具体怎么加入系统环境变量,可以自行百度;
2)打开命令提示符,输入以下命令:
appcmd /apphostconfig:c:\users\cnc\source\repos\webapplication1\.vs\config\applicationhost.config list site
接着命令提示符显示:
以上与项目的applicationhost.config文件显示一致,本项目的site id为2。
四、将applicationhost.config文件内<site name="webapplication1" id="2">节点内容修改,如下(下划线所示):
修改前:
<site name="webapplication1" id="2"> <application path="/" applicationpool="clr4integratedapppool"> <virtualdirectory path="/" physicalpath="c:\users\cnc\source\repos\webapplication1\webapplication1" /> </application> <bindings> <binding protocol="http" bindinginformation="*:63684:localhost" /> </bindings> </site>
修改后:
<site name="webapplication1" id="2"> <application path="/" applicationpool="clr4integratedapppool"> <virtualdirectory path="/" physicalpath="c:\users\cnc\source\repos\webapplication1\webapplication1" /> </application> <bindings> <binding protocol="http" bindinginformation="*:63684:*" /> </bindings> </site>
将localhost修改为*,修改的目的是不仅仅可以使用localhost:63684,还可以使用任意与本机相关的ip地址,如192.168.0.8:63684。
五、为非管理员用户和帐户保留指定的url,请以管理员模式打开命令提示符,输入以下信息:
netsh http add urlacl url=http://*:63684/ user=everyone
完成之后,会显示以下信息:
六、使用iisexpres开启所创建的网站(webapplication),请在控制台输入以下命令:
iisexpress /config:c:\users\cnc\source\repos\webapplication1\.vs\config\applicationhost.config /siteid:2
成功开启后会显示以下信息:
七、如果局域网内不能访问类似:http://192.168.0.8:63684 网站,请关闭防火墙,因为63684端口未配置为防火墙规则。
八、最终的运行效果如下:
上一篇: 站长运营地方论坛心得史借鉴篇
下一篇: JavaScript函数