zoukankan      html  css  js  c++  java
  • [C# ASP.NET]如何让IIS Express支持外部(局域网)连接

    声明:本文为www.cnc6.cn原创,转载时请注明出处,谢谢!

    一、搭建环境:

    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 epos{项目名称}.vsconfigapplicationhost.config",

    笔者这里的位置是:"C:UsersCNCsource eposWebApplication1.vsconfigapplicationhost.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:UsersCNCsource
    eposWebApplication1WebApplication1" />
                    </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 FilesIIS Express”(32位)加入到系统环境变量,具体怎么加入系统环境变量,可以自行百度;

    2)打开命令提示符,输入以下命令:

    appcmd /apphostconfig:C:UsersCNCsource
    eposWebApplication1.vsconfigapplicationhost.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:UsersCNCsource
    eposWebApplication1WebApplication1" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:63684:localhost" />
        </bindings>
    </site>

    修改后:

    <site name="WebApplication1" id="2">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:UsersCNCsource
    eposWebApplication1WebApplication1" />
        </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:UsersCNCsource
    eposWebApplication1.vsconfigapplicationhost.config /siteid:2

    成功开启后会显示以下信息:

    七、如果局域网内不能访问类似:http://192.168.0.8:63684 网站,请关闭防火墙,因为63684端口未配置为防火墙规则。

    八、最终的运行效果如下:

  • 相关阅读:
    【我也不知道是从哪儿来的题】—树(矩阵树定理)
    【我也不知道是从哪儿来的题】—树(矩阵树定理)
    【BJOI2019 Day2】简要题解
    【BJOI2019 Day2】简要题解
    【BJOI2019 Day1】简要题解
    【BJOI2019 Day1】简要题解
    【BZOJ3935】—RBTree(树形dp)
    【BZOJ3935】—RBTree(树形dp)
    2016-8-12
    深入理解web项目的配置文件
  • 原文地址:https://www.cnblogs.com/cncc/p/9811656.html
Copyright © 2011-2022 走看看