这里说的不是如何解决路径重写或者如何配置的问题,而是阐述一下站点(site),应用程序(application)和虚拟目录(virtual directory)概念与作用,已及这三个东西在IIS6与IIS7中的异同。因为站点,应用程序和虚拟目录是我们在IIS上架设网站时肯定会遇到的,但它们的概念又是那么的含糊(至少对我来说)。我在网上找了一些资料来学习,其中一个写的比较详细的是:Understanding Sites, Applications, and Virtual Directories on IIS 7 而这里则只是作一些总结。

在IIS6中,应用程序和虚拟目录的概率是有点含糊的,而在IIS7以上,这三者则被规范化起来,在IIS架构层面上明确了三者的层次关系。

在IIS6中,虽然存在virtual directory 和application两个概念,而且看上去这两个概念是独立的,但是在IIS6中一个application其实就是一个虚拟目录,只不过一个application在medabase中可以对AppFriendlyName, AppRoot, AppIsolated, AppPoolID这几个属性进行设置而已。但IIS6中的site则是例外,因为就算不对那几个属性进行设置,它也不会被视为虚拟目录,而是被视为一个application。

而在IIS7或以上(但目前我能接触到的最高版本的IIS就是win7中的IIS7.5),site,application和virtual directory的概念已经被规范起来,已经不像IIS6那样含糊。在IIS7+中,他们是独立的概念,并且在IIS组织架构上呈现出一种层次关系:一个site中可以有一个或者多个application,一个application中可以有一个或者多个virtual directory,而一个vir et/20141121094231781?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2hhdGRheQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Ce tual directory则对应着一个物理路径。一个site默认会至少有一个application,称为根应用程序(root application)或者默认应用程序(default application),而一个application至少有一个vitual director,称为根虚拟目录(root virtual directory)来看一下我的IIS7.5上一个site的结构和这个site在IIS的ApplicationHost.config文件是怎样对应的。:

  注:ApplicationHost.config文件在目录:\%windir%\system\inetsrv\config目录下

我的IIS中只有一个ID为13的site,site下有两个application分别为cd和dh。从右边的config中可以看到,其实除了cd和dh两个application外,site本身也是一个application,也就是root application。同时也可以看到,每个application下有一个 virtual directory,也就是root virtual directory,充当着这个application的根目录,并映射到该application所在的物理路径。当然,每个application可以有多个virtual directory,这些virtual directory可以对应其他的物理路径(譬如dh application下的image虚拟目录的物理路径可以使网络中另外一台计算机的某个共享目录)

在IIS7+中(其实IIS6也是一样,但细节有不同,这里有点含糊,还待深入研究),一个site运行在一个application pool中,而一个application pool默认有一个w3wp.exe(工作者进程),site中的application运行在这个w3wp.exe进程中的app domain(应用程序域)中(不同application运行在不同app domain中,以进行隔离),而同一个application的virtual directory运行在相同的app domain下。但site下的application不一定必须跟这个site运行在相同的application pool,application可以指定一个跟这个application的site不同的application pool。

接下来独立的阐述一下site,application和virtual derectory

站点(site)

一个站点包含一个或者多个application和一个或者多个虚拟目录。我们可以通过对site进行不同的绑定以用不同的方式对site进行访问。这里的“绑定”包含两个方面,一个是绑定的协议,另一个就是绑定信息。绑定协议用于指定通过什么协议去和该site进行通信。IIS7+中,对一个site可以的协议包括http,https,net.tcp,net.pipe,net.msmq,net.formatname这几种。当然,对于一个网站,最常用的就是http和https。而绑定信息则定义了通信的基本信息,比如IP地址,通信端口,站点的一些头部信息(header)。正如前面说到的,可以为一个site添加多种绑定,只需要在IIS中对某个site进行“编辑绑定”操作即可。

应用程序(application)

application是为一个site提供功能的基本单位,例如一个购物站点可以包含两个application:一个负责呈现商品,给消费者去选购,并放入购物车,而另一个appliation则可以专注于用户的登录以及支付业务。当一个site只有一个application时候,这个application也就是root application或者default application,代表着这个site本身,在applicationHost中的“<application path="/" >”里面,path="/"就表示该application是该site的根应用程序。 

 application运行在IIS中的应用程序池中,以app domain隔离。application可以运行在IIS中任意一个应用程序池中,而不一定要运行在这个application所在的site的应用程序池中,但对于使用托管代码开发的application(例如一个asp.net网站)必须运行在运行在.NET之上的应用程序池。可以在IIS中对应用程序池进行设置,包括设置.NET版本(或者是非托管环境),以及设置管道模式等操作。

虚拟目录(virtual directory)

一个虚拟目录就是一个site(实际上是application)上的对一个本地计算机或者远程计算机上一个物理目录路径的一个映射名称。一个application可以拥有至少一个虚拟目录。在applicationHost中的“<virtualDirectorypath="/" >”里面,path="/"就表示该virtual directory是该application(或者该site)的根虚拟目录。

当设置一个虚拟路径映射到一个物理路径后,这个物理路径中的目录名称就会变成这个site(或者application)的url的一部分。一个site(application)可以拥有多个虚拟目录,例如,一个site中的虚拟目录"www.site.com/script"映射到本地计算机上该站点中script文件夹,而"www.site.com/image"则映射到远程图片服务器上的一个“image”文件夹。IIS7+利用虚拟目录映射的目录路径目录下的web.config配置文件来管理该虚拟目录及其子目录(可以在applicationHost.config的sites/virtualDirectoryDefaults节中使用allowSubDirConfig="false"属性来关闭web.config对子目录的控制。)

IIS7中的站点、应用程序和虚拟目录详细介绍相关推荐

  1. 从生活角度学习应用程序、虚拟目录、应用程序池(解惑篇)

    转自:http://blog.csdn.net/zwk626542417/article/details/9819343 概要 应用程序.虚拟目录.应用程序池这三个概念在上一篇中<一看就会之-利 ...

  2. 应用程序、虚拟目录、应用程序池

    2019独角兽企业重金招聘Python工程师标准>>> 应用程序.虚拟目录.应用程序池 概要 应用程序.虚拟目录.应用程序池这三个概念在上一篇中<一看就会之-利用IIS服务发布 ...

  3. java中的泛型是什么_Java中泛型是什么?Java泛型的详细介绍

    本篇文章给大家带来的内容是关于Java中泛型是什么?Java泛型的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一.什么是泛型? Java泛型设计原则:只要在编译时期没有出 ...

  4. linux的run目录,Linux 中run 目录详细介绍

    原标题:Linux 中run 目录详细介绍 /run 是各种各样数据的家园.例如,如果你查看 /run/user,你会注意到一组带有数字名称的目录. $ ls /run/user 1000 1002 ...

  5. iis管理常用命令 创建IIS站点 应用应用程序 及虚拟目录

    ::防止中文输出乱码 chcp 65001::临时设置PATH set PATH=%SystemRoot%\system32\inetsrv;%PATH% ::列出所有站点 appcmd list s ...

  6. iis5.1安装方法(适用于XP)以及运行调试asp程序,创建虚拟目录【整理】

    Author:张继飞 写在前面:因为要运行asp程序,建立一个小小的网站,呵呵.所以需要安装iis对环境进行安装设置.下面是从网上找到的一些资料,并加上自己的总结,成为一个整篇的方法介绍,为大家寻找一 ...

  7. Tomcat应用部署:打war包、在Tomcat中注册用户角色、创建虚拟目录和域名

    #1.打war包 1)命令:jar -cvf xx.war * (备注:执行打包的前提条件:目录必须切换到打包项目的webRoot(webContent)目录下) 备注:1. c:创建新的文档v:显示 ...

  8. EXCHANGE虚拟目录功能介绍

    简单来说虚拟目录就是CAS服务器发布的应用.(对应IIS中的目录) 下面简单介绍各个虚拟目录的功能: 1.OWA 提供WEB方式邮件访问功能. 2.ECP 提供管理功能,exchange 控制面板. ...

  9. python中easygui有几种_Python 模块EasyGui详细介绍

    Python 模块EasyGui详细介绍 前言: 在Windows想用Python开发一些简单的界面,所以找到了很容易上手的EasyGui库.下面就分享一下简单的使用吧. 接下来,我将从简单,到复杂一 ...

最新文章

  1. mysql练习题——数据分析/大数据岗面试
  2. iOS.访问通讯录.02.写入联系人
  3. LibSVM for Python 使用
  4. 国际经验和政策-国际农民丰收节贸易会:面对现代大农业
  5. 微信公众号 自定义菜单栏目
  6. 7-2 输出约数 (9 分)
  7. HibernateDaoSupport类的使用(转)
  8. linux 优化 sysctl.conf,Linux内核sysctl.conf的优化设置
  9. POJ - 3190
  10. qt msvc编译中文乱码解决
  11. alitum designer 的PCB生成gerber文件步骤
  12. Rust学习:13.1_返回值和错误处理之panic 深入剖析
  13. 项目之间Cookie的共享
  14. linux安装教程黑屏,解决SUSE Linux安装黑屏
  15. 用excel做logistic回归分析_用Excel做回归分析的详细步骤
  16. sefan ru java games_Java Pinyin.se4方法代码示例
  17. NOIP2017提高组模拟赛4 (总结)
  18. KepServerv设置为OPCUA通讯说明
  19. 苹果cms双端模板安装设置教程
  20. java的碳刀_关于碳刀的小知识 一、什么是碳刀? 最通俗

热门文章

  1. Android性能优化篇 [ 谷歌官方 ]
  2. CSS3中box-shadow的用法介绍
  3. LunarPages空间500错误原因及解决办法
  4. Akka2使用探索1(Remoting)
  5. Oracle学习笔记:创建logical standby
  6. 域控制器活动目录之备份与恢复
  7. 使用Vsftpd服务传输文件
  8. shell-sed脚本
  9. mysq中文编码问题
  10. plsql developer 10注册码----亲测截止2017年5月6可用