当前位置首页 > IIS知识

IISExpress总结

阅读次数:299 次  来源:admin  发布时间:

IIS Express可以说是.NET web开发者必用的服务器,日日夜夜都和它打交道。一直以来,除了遇到什么点什么问题,很少会去关注过它。

今天看到以前转载的一篇博客,就再次温故下,主要包含IIS Express的简介与安装、配置、命令行使用。

一、介绍

1.安装

如果不是在开发环境,需要手动如安装,现在最新的版本已经是10.0.

IIS 7.5 Express下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=1038

IIS 8.0 Express下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=34679

IIS 10.0 Express下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=48264

使用 IIS 10.0 Express 的好处包括:

•在生产服务器上运行的同一 web 服务器现在可用于开发计算机。

•无需管理权限,即可执行大多数任务。

•IIS Express 可在 Windows 7 Service Pack 1 及所有更高版本的 Windows 上运行。

•很多用户可在同一台计算机上独立作业。

2.简介

IIS Express是为开发人员优化的轻量级、自包含版本的IIS。IIS Express使使用当前最新版本的IIS来开发和测试网站变得容易。它具有IIS 7及以上的所有核心功能,以及为简化网站开发而设计的附加功能。

3.IIS Express和IIS  

IIS Express源于IIS 7及以上,支持IIS的核心特性,但有一些关键区别。一个重要的区别是工作进程的管理。在IIS,Windows进程激活服务(Windows Process Activation Service【WAS】)是静默激活和停用的Web应用程序,用户没有直接控制。在IIS Express中,不存在WAS,用户可完全控制应用程序的激活和停用。启动后在系统托盘中显示,已经运行的网站可以手动去启用和停止。Hostable Web Core (HWC)是一个IIS API,可用来编写独立的Web服务器,但不被WAS管理。IIS Express被设计为在HWC上的一个壳。

以下表格主要展示了IIS and IIS Express的主要区别:

Area

IIS

IIS Expre

发布机制

与操作系统一起发布

可独立发布,内含与WebMatrix,但可分开安装

支持的Windows版本

Windows Vista and Windows 7的特定版本,Windows Server 2003, 2008 and 2008 R2及以上的大多数操作系统

Windows XP, Vista, Windows 7所有版本,Windows Server 2008 and 2008 R2及以上所有版本

支持的.NET Framework

v2.0 SP1以上

v2.0 SP1 以上或更新版本(需要.NET 4.0).

支持的程序设计语言

传统ASP, ASP.NET和PHP

传统ASP, ASP.NET和PHP

进程模型

Windows Process Activation Service (WAS) 自动管理已设置的网站

由用户加载或终止网站

Hosted WebCore (或Hostable Web Core) 支持

支持

支持. IIS Express已实现为HWC的上层应用.

支持的协议

HTTP, FTP, WebDAV, HTTPS, 与WCF (包括基于TCP, Named Pipes和MSMQ)

HTTP, HTTPS, 与基于 HTTP的WCF

支持非系统管理员模式

WAS必须以系统管理员权限运行

标准用户即可执行大多数工作.

支持多开发者

不支持

Yes. 配置文件、设置、Web content都是基于每用户自己维护

Visual Studio 支持

Ye

VS 2010 SP1以上,VS 2008 可手动配置

运行时的扩展

URL Rewrite 与FastCGI。 IIS Express已内置

管理工具

IIS Manager, appcmd.exe

Appcmd.exe

系统托盘

None

Ye

内建的IIS 模块(验证、授权、压缩等功能)

Ye

Ye

官方英文原版:https://docs.microsoft.com/zh-cn/iis/extensions/introduction-to-iis-express/iis-express-overview

二、使用和配置

iis express早期的时候,需要使用到WebMatrix,现在WebMatrix这个可怜的娃已经被软妹子抛弃了,看来还是功夫不够好 ,呵呵,现在也不多介绍

1.启动和命令行

在vs中web项目运行时,自动启用IIS express,以系统托盘的方式展现,在图标上右键,即可查看在运行的网站,可手动停止运行;另外,还可以通过命令行的方式运行。

示例:win7 vs2013

打开方式: 开始=》所有程序=》Visual Studio 2013 =>Visual Studio Tools=>VS2013 开发人员命令提示

也可在该目录下找到:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcut

常用命令行:

1.查看网站列表

C:\Program Files (x86)\Microsoft Visual Studio 12.0>"C:\Program Files\IIS Express\appcmd.exe" list site

IISExpress总结

2.启动网站

C:\Program Files (x86)\Microsoft Visual Studio 12.0>"C:\Program Files\IIS Express\iisexpress.exe" /siteid:96

IISExpress总结

窗口中可看到浏览网站的开始、结束、调用网址、HTTP状态

注:可将“C:\Program Files\IIS Express”加入“系统变量”Path中,就可以直接执行iisexpress.exe和appcmd.exe。

3.启动一个临时网站

有些情况下,我们需要启动一个临时的网站(比如快速创建一个临时服务器等),便可以用类似的命令行来创建:

iisexpress /path:<网站目录> /port:<端口> /clr:<CLR版本,V2.0|V4.0>

iis express会复制一份配置文件到临时目录,并变更其中的站点信息后再启动,因此不会影响到本机已经配置的网站。

C:\Program Files (x86)\Microsoft Visual Studio 12.0>"C:\Program Files\IIS Express\iisexpress.exe" /path:"G:\01code\04MVC\01bamin\Code\BaminSolution\BM.Admin" /port:8899 /clr:v4.0 /systray:true

IISExpress总结

2.配置文件

默认情况下IIS Express使用的配置文件位于“我的文档”中,路径如下:“我的文档\IIS Express\Config”。其中,applicationhost.config 是核心的配置文件,它用于承载站点的定义、应用程序和应用程序池以及整个WEB服务器的配置。由于是放在我的文档中的,所以修改它不需要管理员权限,意味着可以直接修改。在修改后,下次启动应用程序就会起效。

在applicationhost.config内容中,<system.applicationHost> 用于定义网站和应用程序池。默认情况下,其内容如下:

<system.applicationHost>
    <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>
    <!--   
    
The <listenerAdapters> section defines the protocols with which the   
Windows Process Activation Service (WAS) binds.   
    
-->
    <listenerAdapters>
        <add name="http" />
    </listenerAdapters>
    <sites>
        <site name="WebSite1" >
            <application path="/">
                <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation=":8080:localhost" />
            </bindings>
        </site>
        <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
        <virtualDirectoryDefaults allowSubDirConfig="true" />
    </sites>
    <webLimits />
</system.applicationHost>  

IIS Express 内建了五个应用程序池,分别对应.Net 2.0/4.0的集成/经典模式、以及一个非托管程序池。默认的程序池版本有 <spplicationPoolDefaults> 节来配置。<sites> 节用于配置网站。网站的默认应用程序池和虚拟目录默认配置由 <applicationDefaults> 和 <virtualDirectoryDefaults> 节点配置。以上的节点默认情况下我们并不需要太多关注,因为大多数情况下我们需要关注的只有 <sites> 下的 <site> 节点,这里保存了网站、应用程序的定义,才是我们需要真正关心的。

上一篇:[转]前端Nginx那些事
下一篇:Linux学习笔记01—安装LInux系统