近日,Scott Guthrie发布了IIS Express:IIS的一个轻量级替代品,有希望替代Cassini(Visual Studio的内置Web服务器)。IIS Express旨在解决Cassini的众多问题,开发者可以使用完整的IIS 7.x特性进行开发。目前IIS Express还没有提供下载,但Scott说不久之后就可以了。
IIS Express的使用方式与Cassini一样,都是在调试或运行应用时启动。Windows XP或后面的操作系统都可以运行IIS Express,并不需要管理员帐户,它支持ASP、PHP、SSL、URL Rewrite、Media和其他IIS所支持的文件类型与扩展。对于SSL支持来说,在启动时会自动安装一个自我签名的证书。
给Visual Studio 2010安装完一个补丁后就可以在Visual Studio 2010和Visual Web Developer 2010 Express中使用IIS Express了,之后发布的Visual Studio将会自带IIS Express。早期版本的Visual Studio可以通过命令行的方式使用:
如果从命令行加载就可以在VS 2008中使用IIS Express了。除了VS 2010以外,我们并没有为其他版本的Visual Studio开发相应的集成工具支持。
Scott给出了命令行的完整使用方式与一些示例:
使用方式:
iisexpress [/config:config-file] [/site:site-name] [/systray:boolean]
iisexpress /path:app-path [/port:port-number] [/clr:clr-version] [/systray:boolean]
/config:config-file
applicationhost.config文件的全路径。默认值是位于用户的Documents目录下的IISExpress8configapplicationhost.config文件。
/site:site-name
要加载的站点名,在applicationhost.config文件中声明。
/path:app-path
待运行应用的完整物理路径。该选项不能与/config等相关选项一起使用。
/port:port-number
应用绑定的端口号。默认值是8080,还需要指定/path选项。
/clr:clr-version
运行应用的.NET Framework版本号(比如v2.0)。默认值是v4.0,还需要指定/path选项。
/systray:boolean
启用或禁用系统托盘应用,默认值是true。
示例:
iisexpress /site:WebSite1
该命令会运行用户配置文件中的WebSite1站点。
iisexpress /config:c:myconfigapplicationhost.config
该命令会运行指定配置文件中的第一个站点。
iisexpress /path:c:myapp /port:80
该命令会运行c:myapp目录中的站点,端口号是80。
Cassini的一个限制是只能从localhost访问,但Scott说可以修改IIS Express以支持远程请求。
有读者问到连接限制与重新发布的问题:
…可以将应用重新发布到IIS Express中,没有连接限制。
关于与Azure集成、SharePoint、Edit和Continue支持,Scott说到:
目前还没有集成Azure与IIS Express,但未来打算实现这个功能。
遗憾的是,IIS Express并不支持SharePoint,需要完整的IIS才行。
目前还不支持Edit和Continue,但未来有这个计划。
Scott还提到了IIS与IIS Express之间的一些差别:
两者的核心代码是一样的。主要差别在于IIS Express从命令行或是VS(或是其他工具)中加载工作进程。完整的IIS有个按需的工作进程模型和激活系统,可以根据需要启动或是停止工作进程。
Scott还提到IIS Express只是他们打算发布的众多组件中的一个,不久之后还会发布其他组件。