1.IIS Express 概述

IIS Express是一个微软推出的一款免费,且小型、轻量特别适合ASP.NET开发人员使用的Web开发服务器。在没有IIS Express之前,开发人员只能使用下面两种方案:

  • Visual Studio自带的ASP.NET开发服务器
  • Windows的IIS Web服务器

既然已经有了这两个选择,为什么还要推出IIS Express呢?这是由于这两个方案的不足决定的,如下:

  • Visual Studio自带的Web服务器并没有提供完整的Web服务器功能(例如:不支持SSL、URL重写规则等)
  • Visual Studio自带的Web服务器并不支持外部访问
  • 使用IIS首先需要管理员账号来安装和调试
  • 不同版本的Windows对支持IIS的版本也不相同(Windows XP就不能使用IIS7.x的新功能)

但是IIS Express集成了这两种方案的优点,又避免的他们的缺点

  • 首先,IIS Express除了没有IIS的可视化管理界面,几乎用于其全部的功能
  • 其次,IIS Express经过简单的配置后也可以在Visual Studio 2010中使用(VS2012已经内置了IIS Express 8)
  • 再者,IIS Express相对于IIS支持更多版本的Windows系统(在Windows XP下可以使用IIS Express 7.5)

2.使用IIS Express部署一个Web应用程序

使用IIS Express部署一个站点非常简单,只需要修改Express的applicationhost.config配置文件即可,该文件用于承载站点的定义、应用程序、应用程序池和整个WEB服务器的配置。文件的默认位置在:C:\Users\UserName(用户名)\Documents\IISExpress\config目录下,打开该配置文件我们可以看到IIS Express支持下面五种应用程序池:分别是.NET 2.0和.NET 4.0的集成版和经典版,以及一个非托管的版本:

<applicationPools>

                     <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

                     <add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

                     <add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />             

                     <add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />             

                     <add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" /><applicationPoolDefaults managedRuntimeLoader="v4.0">

                     <processModel />

                     </applicationPoolDefaults>

                 </applicationPools>

现在我们来看最重要的sites节点,每个site节点表示一个站点,其中:bindingInformation节点由三个部分组成:绑定的IP:端口:主机名称。

<sites>

             <site name="IIS Express" id="1" serverAutoStart="true">

                 <application path="/">

                     <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />

                 </application>

                 <bindings>

                     <binding protocol="http" bindingInformation=":8080:localhost" />

                 </bindings>

             </site>

         <sites>

 

  现在我们可以开始部署Web应用程序了,将发布好的Web应用程序放到指定目录(在我这里我将其放到D盘的WebAPP目录下面),然后修改上面的配置文件,比如选择绑定的端口,选择Web应用程序对于的.NET应用程序池即可:
<site name="WebSite" id="2" serverAutoStart="true">

                <application path="/" applicationPool="Clr4IntegratedAppPool">

                    <virtualDirectory path="/" physicalPath="D:\WebApp" />

                </application>

                <bindings>

                    <binding protocol="http" bindingInformation="*:8081:*" />

                </bindings>

            </site>

 

  启动IIS Express,在浏览器中输入:http://localhost:8081/访问Web应用程序:

3.配置IIS Express 使其能够进行外部访问

首先是需要将Web应用程序使用的端口号在Windows防火墙中设置允许通过,其次是修改site节点下的binding节点的bindingInformation属性:

                <bindings>
<binding protocol="http" bindingInformation="*:8081:*" />
</bindings>

最后,需要以管理员身份启动IIS Express即可,使用Ip地址进行访问:

参考资料&进一步阅读

http://msdn.microsoft.com/zh-cn/ff844168

http://www.cnblogs.com/nicch/archive/2011/03/20/1989192.html

使用IIS Express的更多相关文章

  1. VisualStudio 2015 开启IIS Express可以调试X64项目

    现在项目开发时总有时需要在X64下开发,这样我们就需要IIS Express中调试.不要总是放在IIS中,在Attach这样好慢.   如果不设置直接调试X64的程序,我们有可能会受到以下类似的错误 ...

  2. VS2015调试时没有启动IIS Express Web服务器 或者停止调试时 IIS Express 跟着关闭

    解决方法: 打开 解决方案资源管理器 -> 点选 Web 项目选择 -> 属性 -> Web "服务器"  去掉勾选"将服务器设置应道所有用户" ...

  3. VS2013无法启动 IIS Express Web解决办法

    开发环境:windows8.1+VS2013 使用VS2013有一段时间了,因前期都是编写C/S程序,没有使用到B/S调试器.前几日,创建了一个MVC项目,突然发现VS2013无法调试,报了这样的错. ...

  4. Windows8.1系统下让VS2012编译运行IIS Express 64位 调试器

    有时候在window8以上系统中对C#系统进行调试 提示不能使用32位IIS Express,如果每次都采用IIS 在vs代码进行调试的时候很麻烦 下面我们就介绍一下怎么用编译调试64位代码: 网上方 ...

  5. vs2012使用64位IIS EXPRESS调试

    使用Visual Studio 2012开发网站或web应用程序时,可以使用两种web server.自带的development server和IIS EXPRESS.development ser ...

  6. IIS/IIS Express/Asp.net配置片段记录

    事情的起因是,我们在项目中使用了URLRewriter.dll作为实现伪静态的工具,在VS2010及之前的开发环境中,该功能运行正常,但在VS Express 2012 for Web中就不起作用了, ...

  7. VS2017 RC IIS Express 无法启动 环境不正确

    Unable to start program 'C:\Program Files (x86)\IIS Express\iisexpress.exe'. The environment is inco ...

  8. IIS Express 配置外部访问

    IIS Express是Visual Stuido自带的微型Web服务器,简单易用. IIS Express默认只允许本机访问,通过Visual Studio调试Web程序时,我们有时需要通过外部访问 ...

  9. 在IIS Express中调试时无法读取配置文件 错误

    在IIS Express中调试代码时,如果出现"无法读取配置文件"的问题(如图),这种情况是IIS Express的"applicationhost.config&quo ...

  10. vs2015 无法启动IIS Express Web服务器

    今天在VS2015上装了 之后无法启动IIS Express Web服务器. 然后我去查看了windows日志发现vs创建的虚拟目录不见了(至于是不是以上原因导致的没去查明) 然后在vs2015中点击 ...

随机推荐

  1. UVa 12096 The SetStack Computer【STL】

    题意:给出一个空的栈,支持集合的操作,求每次操作后,栈顶集合的元素个数 从紫书给的例子 A={{},{{}}} B={{},{{{}}}} A是栈顶元素,A是一个集合,同时作为一个集合的A,它自身里面 ...

  2. EF DataBase First生成model的验证

    如何避免在EF自动生成的model中的DataAnnotation被覆盖掉 相信很多人刚接触EF+MVC的时候,DataBase First模式生成model类中加验证信息的时候,会在重新生成mode ...

  3. (3)Spring定时任务的几种实现

    Spring定时任务的几种实现 近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将 ...

  4. 【转】如何在eclipse里关联查看android源码

    原文网址:http://fengbohaishang.blog.51cto.com/5106297/1339556 以前没怎么注意过这个问题,不怎么看源码,现在发现源码确实是很好的学习资源. 直入正题 ...

  5. 如何在linux中搭建JEECMS系统

    本人正在进行jeecms二次开发,但因win7系统中的Tomcat无法使用,就想起在linux下安装,但去jeecms的官方网站,没有给出在linux下安装的方法,确实苦恼,经过一天的研究,终于大功告 ...

  6. XA事务处理

    XA接口详解 X/Open XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁.事务管理器控制 ...

  7. Windows7 64位系统下无法安装网络打印机的解决方法

    背景: 公司一台HP LaserJet 1010 打印机连在一台Windows XP的电脑上,而我的是windows7 64位系统,无法安装驱动解决办法:1:去惠普官网上下载对应的64位驱动(什么Vi ...

  8. Canvas入门(1):绘制矩形、圆、直线、曲线等基本图形

    来源:http://www.ido321.com/968.html 一.Canvas的基础知识 Canvas是HTML 5中新增的元素,专门用于绘制图形.canvas元素就相当于一块“画布”,一块无色 ...

  9. 数据库连接类oracleHelper

    //=============================================================================== // OracleHelper ba ...

  10. <Chapter 2>2-2-2-1.介绍JSPs,JSTL,和EL(Introducing JSPs, JSTL, and EL)

    现在,我们的时钟显示了UTC时区的时间.我们希望我们的应用可以让用户自定义时区,并且为将来的访问记住用户的偏好.为了做到这一点,我们使用Google帐户来识别哪个用户正在使用这个应用. 在我们深入了解 ...