IIS - 虚拟目录与应用程序的异同
在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来共享主站点和 虚拟目录/应用程序 之间的信息,当然也可以考虑一些变通方案
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架