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组件没有 ...
随机推荐
- Nginx Location配置语法介绍、优先级说明
nginx 语法规则:location [=|~|~*|^~|!~|!~*] /uri/ { … } location匹配的是$document_uri,$document_uri 会随 ...
- linux 下su 和sudo 的用法以及区别
一. 使用 su 命令临时切换用户身份 1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用 ...
- 发布阿里云OSS for phpcmsV9整合教程
说明:这个算不上是插件,因为没有安装包,需要手工修改代码. 还有一点就是后台发布文章时上传的附件还是会保存在你的服务器上,基于以下原因: 1.个人的需求是前台页面需要使用thumb函数生成多个缩略图大 ...
- VMware虚拟机升级过程中遇到的一点问题
在将VWware由9.0升级到10.0的过程中,出现如下图的错误: failed to create the requested registry key Key:Installer e ...
- 【javascript】随手记代码
//js实现的当前界面的刷新.前进.后退 <input type="button" value="刷新" onclick="window.loc ...
- SQL基础学习篇--字符函数
字符函数可与SELECT,UPDATE,DELETE RIGHT()----从右侧开始选择 SELECT RIGHT(列,字符数量) FROM 表 LEFT()----从左侧开始选择 SUBSTR ...
- 1092. To Buy or Not to Buy (20)
Eva would like to make a string of beads with her favorite colors so she went to a small shop to buy ...
- hdu 1427 速算24点
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1427 速算24点 Description 速算24点相信绝大多数人都玩过.就是随机给你四张牌,包括A( ...
- hdu 5112 A Curious Matt
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5112 A Curious Matt Description There is a curious ma ...
- SQL Server 2008 R2 主从数据库同步
一.准备工作: 主数据库服务器: OS:Windows Server 2008 R2 DB: SQL Server 2008 R2 Hostname : CXMasterDB IP: 192.1 ...



