在Windows 7 IIS7中,对服务器建立站点后,有二种添加子站点的方式

A. 虚拟目录
B. 应用程序
 
简单总结下二者之间的异同
A.虚拟目录
    虚拟目录是指在站点下建立一个虚拟子目录,指定一个固定的物理路径做为站点的应用路径。
    1. 虚拟目录与父级站点共用一个应用程序池
    例如:站点TestWeb(c:\Inetpub\wwwroot\ TestWeb)下建立了SubTestA(D:\SubTestA)的虚拟目录
        若TestWeb为设定了Framework V2.0,则SubTestA也必须是Framework V2.0的应用程序,否则将给带来Framework不匹配的各种错误。
    2. 虚拟目录必须将可执行文件(dll等)放置在父级站点的bin目录下。
    3. 虚拟目录中的web.config文件继承父级站点的web.config.
        就是说如果父级站点声明过的引用,在虚拟目录下的web.config中不应重复声明
    4. 虚拟目录中的应用其根目录为父级站点的根目录    
    5. 虚拟目录中的AppSetting.config设置应使用相对路径来进行引用。
B. 应用程序
    应用程序是指在父级目录下建立了一个单独的应用程序,独享应用程序池
    1. 应用程序可以与父级站点拥有不同的应用程序池
        即可以达到TestWeb为Framework V2.0,而SubTestA可以是Framework V4.0,二者互不影响
    2. SubTestA的可执行文件独立的放置在根目录下的bin中,不能放置在WebTest的bin目录中
    3. SubTestA的web.config独立于WebTest的web.config
    4. SubTestA中的应用其根目录为父级站点的根目录
    5. 虚拟目录中的AppSetting.config设置应使用相对路径来进行引用。
 
应用程序是建立在虚拟目录的基础之上,而应用程序独立于父级站点拥有独立的程序运行机制,这让同一站点拥有了运行不同框架集而不相互影响的能力
实际运用中需要根据不同的情况来选择虚拟目录或应用程序
 
追加疑问:
IIS下网站与网站下一个 虚拟目录/应用程序 能否共享session?比如IIS下有test网站,test网站下有一个subtest 虚拟目录/应用程序 是另一个ASP.NET项目的站点,主站点test和 虚拟目录/应用程序 subtest  之间能否直接共享session?
答案:不能!因为每个虚拟目录相当于是一个应用程序,而应用程序之间的Session是不共享的!只能通过cookies来共享主站点和 虚拟目录/应用程序 之间的信息,当然也可以考虑一些变通方案
 
 
 
 

IIS - 虚拟目录与应用程序的异同的更多相关文章

  1. iis虚拟目录或应用程序不继承父站点的web.config配置信息

    A为主站点 B为A的应用程序站点 再A的web.config中对不想继承的节点用location 套起来.如下: <location path="." allowOverri ...

  2. 修改IIS虚拟目录名称

    @echo off echo ------------------------------------------------------------------------------ echo - ...

  3. 转:修改IIS虚拟目录名称bat脚本

    @echo off echo ------------------------------------------------------------------------------ echo - ...

  4. 利用iis虚拟目录实现文件服务器功能(分布式存储)

    要求说明: 通过网站上传文件保存到统一的文件服务器上. 服务器说明: 1.文件服务器以下称为FilesServer,IP地址为:192.168.1.213 2.Web服务器为以下称为WebServer ...

  5. ASP.NET网站中获取当前虚拟目录的应用程序目录的方法(转)

    [原创]ASP.NET网站中获取当前虚拟目录的应用程序目录的方法 ASP.NET网站中获取当前虚拟目录的应用程序目录的方法1.问题描述:有时候,某个网页控件会被不同目录下文件使用,此时如果该控件中有一 ...

  6. 利用iis虚拟目录实现文件服务器功能

    要求说明: 通过网站上传文件保存到统一的文件服务器上. 服务器说明: 1.文件服务器以下称为FilesServer,IP地址为:192.168.1.213 2.Web服务器为以下称为WebServer ...

  7. IIS虚拟目录实现与文件服务器网络驱动器映射共享

    这篇文章转载别人,想原创作者致敬! 我本人也遇到同样的问题,故转载记录. 本文重点描述如何使用IIS访问共享资源来架设站点或执行 ASP.Net 等脚本. 通常情况下,拥有多台服务器的朋友在使用IIS ...

  8. iis虚拟目录引发的路径问题

    在iis上把web程序配置成站点是ok的,但配置成虚拟目录,就会发现 图片路径不能,样式不能加载,链接出错. 解决方案: 1,上传图片  ~/upload 2,cs程序,链接跳转,请用~/index. ...

  9. 转:IIS虚拟目录实现与文件服务器网络驱动器映射共享

    这篇文章转载别人,想原创作者致敬! 我本人也遇到同样的问题,故转载记录. 本文重点描述如何使用IIS访问共享资源来架设站点或执行 ASP.Net 等脚本. 通常情况下,拥有多台服务器的朋友在使用IIS ...

随机推荐

  1. attr()与prop()之全选、反选问题

    获取js dom原生属性的时候最好用prop()方法,获取自己添加的属性时用attr() 原文:http://blog.sina.com.cn/s/blog_bf5ce8cc0102vuyt.html ...

  2. BootstrapValidator超详细教程

    一.引入必要文件 下载地址:(https://github.com/nghuuphuoc/bootstrapvalidator/archive/v0.4.5.zip) <link rel=&qu ...

  3. String class fetch functionality

    String类的获取功能: package com.itheima_04; /* * String类的获取功能: * int length():获取字符串的长度,其实也就是字符个数 * char ch ...

  4. 安卓app开发-04- app运行的运行和调试

    app 运行的运行和调试 本篇介绍在 Android Studio 开发工具,运行调试设备:真机和虚拟机. 真机调试(USB 连接手机) 尽量使用真机进行调试,无论是调试效果和速度都比模拟器要好.使用 ...

  5. Head First HTML和CSS(一)

    Web语言 HTML和CSS是我们用来创建网页的语言. Web服务器存储并提供由HTML和CSS创建的网页,浏览器获取页面,并根据HTML和CSS显示网页的内容 HTML是超文本标记语言(HyperT ...

  6. mssql修改id

    alter   table   image   alter   column   id     int   IDENTITY   (1,   1)   NOT   NULL 我只能上查询分析器,所以只 ...

  7. Windows Socket和Linux Socket编程的区别 ZZ

    socket相关程序从Windows移植到Linux下需要注意的: 1)头文件 Windows下winsock.h/winsock2.h Linux下sys/socket.h 错误处理:errno.h ...

  8. PL/SQL编程基础——PL/SQL简介

    课程教师:李兴华 课程学习者:阳光罗诺 日期:2018-07-28 知识点: 1. 了解PL/SQL的主要特点 2. 掌握PL/SQL块的基本结构 PL/SQL PL/SQL是Oracle在关系数据库 ...

  9. 企业级Ngnix基于域名的配置_server

    普通的nginx配置 egrep -v "#|^$" /usr/local/nginx/conf/nginx.conf.default 更改nginx的配置文件-->注意空格 ...

  10. ASP.NET Core 编码、web编码、网页编码 System.Text.Encodings.Web

    System.Text.Encodings.Web 空间包含表示 Web 编码器的基类.表示 HTML.JavaScript 和 Url 字符编码的子类,以及表示仅允许编码特定字符.字符范围或码位的筛 ...