介绍 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

无法使用自订的验证方式 ,IPrincipalIIdentity

只能给开发机使用

与 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

http://weblogs.asp.net/scottgu/archive/2011/01/13/announcing-release-of-asp-net-mvc-3-iis-express-sql-ce-4-web-farm-framework-orchard-webmatrix.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的更多相关文章

  1. 【安装Express】CentOS7 下安装NodeJs+Express+MongoDB+Redis

    上一篇介绍了一下怎么安装Nodejs,那么这一篇就说说怎么安装express,express有个中文站点非常非常方便,http://www.expressjs.com.cn/创建express框架的站 ...

  2. XP下安装IIS的图文教程(无光盘)

    IIS5.1安装文件包下载地址:http://yunpan.cn/QzBZGugw84wEr 安装记录: 1. 将IIS5.1安装文件包解压 2. 开始-->控制面板-->添加/删除程序- ...

  3. Windows下Node.js+Express+WebSocket 安装配置

    Linux参考: Linux安装Node.js 使用Express搭建Web服务器 Node.js是一个Javascript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V ...

  4. Ubuntu下搭建NodeJS+Express WEB开发框架

    Ubuntu下搭建NodeJS+Express WEB开发框架 2012-12-27 15:06 作者: NodeJSNet 来源: 本站 浏览: 2,966 次阅读 我要评论暂无评论 字号: 大 中 ...

  5. 在Win7下安装IIS

    由于工作上的需要,有朋友在问在windows7系统下如何来配置IIS,大部分用户平时都很少接触到这个功能,所以对于安装配置十分陌生也是在所难免的,下面就让小编与你分享下windows7系统下IIS详细 ...

  6. NodeJS - Express 4.0下使用app.dynamicHelpers错误

    在NodeJS - Express 4.0下使用app.dynamicHelpers发生错误: app.dynamicHelpers({ ^ TypeError: Object function (r ...

  7. NodeJS - Express 3.0下ejs模板使用 partial展现 片段视图

    如果你也在看Node.js开发指南,如果你也在一步一步实现 microBlog 项目!也许你会遇到本文提到的问题,如果你用的是Express 3.0 本书实例背景是 Express 2.0 而如今升级 ...

  8. windows 7 下安装 IIS 和 ArcGis Server 9.3 遇到的问题及解决方法

    windows 7 下安装 IIS 和 ArcGis Server 9.3 遇到的问题及解决方法 分类: ArcGIS server 计算机2012-07-31 14:17 631人阅读 评论(0)  ...

  9. 安装SQL SERVER2005时,需要win7下安装IIS,记录下

    安装SQL server2005 时,需要先安装IIS,这里描述win7系统下配置IIS的方法. 虽然很多文章都有写过,这里只是重复一下 关键是IIS组件全都勾选上,如果没有全部勾选上,IIS组件没有 ...

随机推荐

  1. JqueryUI

    http://jqueryui.com/ http://www.runoob.com/jqueryui/jqueryui-tutorial.html

  2. 【代码】ini 文件读取工具类

    using System; using System.Runtime.InteropServices; using System.Text; namespace hrattendance.Common ...

  3. 获取月份对应的day

    function getDaysInMonth(month, year) { , , , , , , , , , , , ]; //主要处理二月份的天数 ) && (year % == ...

  4. Ioc 控制反转 实例

    关于IOC 或者是DI 什么的真的很坑爹. 开始理解了这东西了然后闲的没事就又百度了一下,得  我又凌乱了.  看了两个大神的贴 尼玛啊 完全是反过来了. 纠结了半天.然后就想找个简单点不坑爹的原理代 ...

  5. 对"使用Mono Runtime Bundle制作安装包让C#桌面应用程序脱离net framework"增加说明

    http://www.cnblogs.com/basilwang/archive/2011/11/29/2267809.html 想做独立引用的估计都看过这一篇文章,但是因为软件更新,很多地方已经不适 ...

  6. Dapper多表查询(列名重复,类字段重复)映射方案

    1. 一个主名,一个别名,设计时候属性和字段命名不同. 这样主名和别名都可以用的,在主名与别人重复时候用别名(别名可以设计的明确一点长一点,比如类名和字段结合) 2. 或者找一个字段多的直接继承出一个 ...

  7. Python科学计算利器——Anaconda

    (搬运自我在SegmentFault的博客) 最近在用Python做中文自然语言处理.使用的IDE是PyCharm.PyCharm确实是Python开发之首选,但用于科学计算方面,还略有欠缺.为此我尝 ...

  8. 帮朋友 解决一道 LeetCode QJ上问题

    引言 对于刷题,自己是没能力的. 最经一个朋友同事考我一道数组题 . 也许能当面试分享吧. 娱乐娱乐. 事情的开始是这样的. 前言 题目 截图 大概意思 是 在一个 数组中,找出其中两个不重复出现的元 ...

  9. golang实现ping命令

    // Copyright 2009 The Go Authors.  All rights reserved.// Use of this source code is governed by a B ...

  10. vs2010 开发过程中调试时 有错误不中断

    出现这个的原因是调试的设置有问题,修改下设置就好了. 修改方法:点击上边工具栏中   调试--异常 出现以下页面,把引发那列复选框全部勾上,点击确定就好了.