IIS Express 及 vs2008下使用IIS Express
介绍 IIS Express
开发 ASP.NET 的应用程序是我的主要工作。当然我会选择最适合的开发环境。客户多属于企业用户,我的开发的选择,多半是 ASP.NET Web Application + SQL Server + IIS。
在内部 Demo 开发技术时,则会偶而使用 Web Development Server 来示范。然而在许多项目上,仍然看到选用 Web Development Server 来开发企业用的程序,虽然知道不妥,也常常倡导,但在 Visual Studio 预设使用 Web Development Server 的状况,实在无法防止误用的情形。
以下就探讨一下 IIS 7,Web Development Server,及2010/01/13 推出的 IIS Express
使用 IIS
所有的 ASP.NET 应用程序,无论是 WebSite,WebForm,还是最新的 MVC,最终需要部署到 IIS 上。我认为开发环境最好直接使用 IIS,避免开发环境与正式环境差异太大,开发人员与维运人员的认知才会趋于一致。
优点
与正式环境趋于一致。尤其在权限设定差异最为常见。
缺点
设定繁复,且不同版本的 IIS会有不同的设定方式。例如 IIS5, 5.1, 6, 7, 7.5。随着IIS不同版本,设定的位置,接口,账号都有极大的不同。
在 Vista 或 Windows 7 上,由于UAC 的限制,需要以管理员权限执行 Visual Studio 才能开发。
Windows Home 版本无法安装 IIS。尤其学生或 SOHO 人员常常经费不多,无法学习或开发简易的程序。
在 Windows XP 上,只能使用 IIS 5.1。此时如果想要在 XP 上开发 IIS 7 的 ASP.NET 程序就很难了。
想要让开发人员对不同 IIS 版本都有一定程度的了解,几乎是不可能的事了。开发人员只能尽快地开发出需求对应的功能,对于如何部署一事,大部份都不太在意。
ASP.NET Web Development Server 的缺点
为了克服 Visual Studio 使用 IIS 的困难,微软开发了 ASP.NET Web Development Server 这个工具。
优点
简化开发环境。开发人员不必安装 IIS。这一点,也克服了 Windows Home 版本无法安装 IIS 的问题。
缺点
一个应用程序一个 Port。无法使用虚拟目录。也不适用 Single Sign On 的开发。
不支援 HTTPS
无法使用自订的验证方式 ,IPrincipal, IIdentity
只能给开发机使用
与 IIS 相比,启动时间长
直接使用与开发人员所使用的账号作为执行 security context,而开发人员所登入的账号常常又是管理员,造成与部署 到IIS的真实状况 (IUser, network Service, w3wp 等)差异甚大。
无法模拟asp。如果您的程序有 asp 的网页,就不适用 Web Development Server。
与 IIS 7 上的 http handler, http module 执行方式不同。见http://charlesbc.blogspot.com/2009/11/aspnet-file-does-not-exist.html
etc.
由于 Web Development Sever 的设计先天上就与真实 IIS 的执行大异其趣,许多怪异的行为层出不穷。我非常不建议使用 Web Development Server 来执行软件开发项目。
IIS Express
由于 UAC, IIS 7 等后来的技术演变,原先设计的 Web Development Server 早已不符合需求了。微软也体认到了这一点,于是在2010 年中开始着手开发下一个继任的版本,也就是 IIS Express 7.5。
优点
使用 IIS 7 同一个 Kernel。因此行为与 IIS 大致相同。例如可以模定 https,http modules 与 http handlers 也与 IIS 7 的执行结果一致。
使用与开发人员相同的 security context,因此不受 UAC 的限制。
IIS Express 同时包含了 IIS 与 Web Development Server 的优点。这也是我推荐的原因。
缺点
还是使用了开发人员的 security context。开发人员容易误以为程序的执行结果都是对的,却不知道其实是有许多前题(即安全设定)。
由于 IIS Express 才 release 没多久,还无法知道有哪些实际的缺点。这个缺点的清单或许会愈列愈多吧。
参考
http://weblogs.asp.net/scottgu/archive/2011/01/03/vs-2010-sp1-beta-and-iis-developer-express.aspx
使用 IIS Express
1. Visual Studio 2010 SP1 以上的VS版本, VS中集成子IIS Express. 其它只能使用命令行开启IIS Express
安装
到 Internet Information Services (IIS) 7.5 Express 下载后执行。安装过程完全是「下一步」「是」「完成」的过程,其间没有任何输入选项。或者到 Web Platform Installer 来安装 这个连结。
自行启动 IIS Express
预设的状况下,是要自行修改 IIS Express 设定及启动 IIS Express 的。以下就介绍如何在 Visual Studio 2010 上使用 IIS Express。
首先,建立一个 Web Application,并且命名为 WebApplication1。接着,修改 WebApplication1 的 Property,在 “Use Custom Web Server” 中设定为 http://localhost:12345/

网站配置:
以notepad 打开 %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config,修改configuration\system.applicationHost\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\bc\Documents\visual studio 2010\Projects\WebApplication1\WebApplication1" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":12345:localhost" />
</bindings>
</site>
...
我主要增加了一个新的 site,name 为 WebApplication1。id=2,请不要重复即可。在 physicalPath 中,请填入上一步 Visual Studio 所建立的 web Application 的应用程序目录。bindngInformation 则彷校范例 WebSite1的样子,修改为 :12345:localhost,意思是使用 localhost 的12345 port
而我将 第一个 Site name=”WebSite1” 的 serverAutoStart 移除掉了。因为我不想一启动 IISExpress 就会启动这个WebSite1范例。
最后,按Win+R键或在 cmd 中执行下面指令以启动 IISExpress
"C:\Program Files\IIS Express\IISExpress.exe" site:WebApplication1
执行结果如下图
在Windows 右下方也会出现图示。在图示上按右键可以查询执行。
当然,我们就可以执行 http://localhost:12345/ 了

整合Visual Studio 2010 开发环境
上述的设定过程是不是很麻烦呢?是的,可是没办法。我们必须等到 Visual Studio 2010 SP1之后,才能享到直接在开发环境中整合设定的好处。使用 Visual Studio 2010 SP1 Beta 时,会多出一个「use IIS Express」的选项,如下画面。
在未使用 IIS Express 的 Web 项目,也会多出一个 Use IIS Express 在快显选单上。
结论d
我还是等到 Visual Studio 2010 SP1 好了。这样比较简单。但对于其它如 VS 2005, VS2008 等使用者,只好说声 Sorry,乖乖地自行启动 IIS Express 吧!
技巧:
针对VS2005,VS2008用户, 可新建一个*.vbs文件
Set shell = Wscript.createobject("wscript.shell")
a = shell.run ("""C:\\Program Files\\IIS Express\\iisexpress.exe""",0,true)
这样就可以解决用cmd运行C:\\Program Files\\IIS Express\\iisexpress.exe时, 窗口要一直开着的问题
"""三个引号
引: http://tangzhongxin.blog.163.com/blog/static/892196120111024103949351/
IIS Express 及 vs2008下使用IIS Express的更多相关文章
- 【安装Express】CentOS7 下安装NodeJs+Express+MongoDB+Redis
上一篇介绍了一下怎么安装Nodejs,那么这一篇就说说怎么安装express,express有个中文站点非常非常方便,http://www.expressjs.com.cn/创建express框架的站 ...
- XP下安装IIS的图文教程(无光盘)
IIS5.1安装文件包下载地址:http://yunpan.cn/QzBZGugw84wEr 安装记录: 1. 将IIS5.1安装文件包解压 2. 开始-->控制面板-->添加/删除程序- ...
- Windows下Node.js+Express+WebSocket 安装配置
Linux参考: Linux安装Node.js 使用Express搭建Web服务器 Node.js是一个Javascript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V ...
- Ubuntu下搭建NodeJS+Express WEB开发框架
Ubuntu下搭建NodeJS+Express WEB开发框架 2012-12-27 15:06 作者: NodeJSNet 来源: 本站 浏览: 2,966 次阅读 我要评论暂无评论 字号: 大 中 ...
- 在Win7下安装IIS
由于工作上的需要,有朋友在问在windows7系统下如何来配置IIS,大部分用户平时都很少接触到这个功能,所以对于安装配置十分陌生也是在所难免的,下面就让小编与你分享下windows7系统下IIS详细 ...
- NodeJS - Express 4.0下使用app.dynamicHelpers错误
在NodeJS - Express 4.0下使用app.dynamicHelpers发生错误: app.dynamicHelpers({ ^ TypeError: Object function (r ...
- NodeJS - Express 3.0下ejs模板使用 partial展现 片段视图
如果你也在看Node.js开发指南,如果你也在一步一步实现 microBlog 项目!也许你会遇到本文提到的问题,如果你用的是Express 3.0 本书实例背景是 Express 2.0 而如今升级 ...
- windows 7 下安装 IIS 和 ArcGis Server 9.3 遇到的问题及解决方法
windows 7 下安装 IIS 和 ArcGis Server 9.3 遇到的问题及解决方法 分类: ArcGIS server 计算机2012-07-31 14:17 631人阅读 评论(0) ...
- 安装SQL SERVER2005时,需要win7下安装IIS,记录下
安装SQL server2005 时,需要先安装IIS,这里描述win7系统下配置IIS的方法. 虽然很多文章都有写过,这里只是重复一下 关键是IIS组件全都勾选上,如果没有全部勾选上,IIS组件没有 ...
随机推荐
- C++判断五位以内的对称素数
题目内容:判断一个数是否为对称且不大于五位数的素数. 输入描述:输入数据含有不多于50个的正整数n(0<n<232). 输出描述:对于每个n,如果该数是不大于五位数的对称素数,则输出“Ye ...
- 更强的微光闪烁效果--第三方开源--Shimmer-android
Shimmer-android在github上的项目主页是:https://github.com/RomainPiel/Shimmer-android Shimmer-android干脆在Androi ...
- python之文件
文件打开函数:f = open 表1-1:open函数中模式参数常用值 打开模式 描述 'r' 读模式 'w' 写模式 'a' 追加模式 'b' 二进制模式 '+' 读/写模式 表1-2:文件对象方法 ...
- windows下找不到strings.h
头文件用的strings.h,换成string.h就好了.但是以前的Linux系统下用strings.h,strerror都能正常编译,怎么样能正常使用strings.h linux系统下的库问题跟w ...
- 分布式缓存Memcached
分布式缓存服务器,既然用到数据缓存很明显就是想高效性的获取数据,大容量的存储数据.为了可以缓存大量的数据以及可以高效获取数据,那么分布式缓存数据库就要解决数据可以水平线性扩展,这样可以扩大数据容 ...
- android开发中系统自带语音模块的使用
android开发中系统自带语音模块的使用需求:项目中需要添加语音搜索模块,增加用户体验解决过程:在网上搜到语音搜索例子,参考网上代码,加入到了自己的项目,完成产品要求.这个问题很好解决,网上能找到很 ...
- Bing Speech Recognition 标记
Bing Speech Services Bing Bing Speech Services provide speech capabilities for Windows and Windows ...
- JVM学习总结四——内存分配策略
之前几篇我们介绍了jvm的内存模型以及垃圾回收机制,而本篇我们将介绍几个JVM中对象在分配内存是应该遵循的策略.毕竟,想要去优化程序,不仅要考虑垃圾回收的过程,还要从对象内存分配的角度减少gc的代价. ...
- Go原子计数
通过原子计数可以在多线程情况下,对同一个数值进行加减操作,一般用于状态同步. 先看代码: package main import "fmt" import "time&q ...
- [转]JSON与XML的区别比较
1.定义介绍 (1).XML定义扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许 ...



