HttpModule 与虚拟目录、子目录 以及应用级别目录
2009-04-07 21:08
113 查看
HttpModule 与虚拟目录、子目录 以及应用级别目录
Web.config 是可以配置在网站的任何一个目录下的,但是Web.config中一些配置项只能配置在某些特定目录下,这些配置项如果不是配置在某些特定目录下的时候,会报错,或者不起作用。
这些特殊的配置项,大多是做应用程序级别配置的配置项
比如:
整个应用的验证模式配置项,如果你把它放在一个应用级别目录的下级目录时候。会报错。
又比如,新加一个 HttpModule ,如果你把它放在一个应用级别目录的下级目录时候,会不起作用。
但是,卸载一个 HttpModule 的配置,把它放在一个应用级别目录的下级目录时候,却起作用。
下面我们看一个对这个功能的测试
我们有这样一个站点,如下图:
其中 MyWeb200 是一个站点
WebApp01 和 WebApp04 都是一个虚拟目录(Virtual Directory)
虚拟目录 可以设置在跟根站点不在同一个目录下。
他们的不同之处在于WebApp04 这个虚拟目录被设置了应用程序级别,WebApp01 没被设置,则这个目录下的
应用程序级别是整个根站点下。
可以明显看到 WebApp04 下有 bin 目录, WebApp01 下没有
WebApp02 和 WebApp03 都是站点下的一个子目录,他们的目录跟根站点的目录有从属关系。
不同之于在于 WebApp02 设置了应用程序级别
WebApp03 没被设置。
如果我们在上述所有目录下,都增加了一个 HttpModule,起作用的只有以下几个目录的配置,其他目录下不起作用。
根站点 Web.config 中新设一个 HttpModule 起作用
WebApp01 虚拟目录下 Web.config 中新设一个 HttpModule 起作用
WebApp02 子目录下 Web.config 中新设一个 HttpModule 起作用
WebApp021 子目录下 Web.config 中新设一个 HttpModule 起作用
其他站点下 Web.config 中新设 HttpModule 不起作用,但是任何目录下,卸载一个指定的 HttpModule 起作用。
我上面用到的几个词的英文翻译:
虚拟目录 (Virtual Directory)
子目录 (subdirectory)
应用级别目录(application level)
参考:
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx
?dg=microsoft.public.dotnet.framework.aspnet&tid=3053b1b3-5edb-4716-99bc-cb476a61cf35&p=1
一个简单的HttpModule例子
http://www.cinenn.com/blog/105.shtml
总结:
只有一句话。
新增一个 HttpModule 只能是应用程序级别的设置,卸载一个 HttpModule 是目录层次的设置。
Web.config 是可以配置在网站的任何一个目录下的,但是Web.config中一些配置项只能配置在某些特定目录下,这些配置项如果不是配置在某些特定目录下的时候,会报错,或者不起作用。
这些特殊的配置项,大多是做应用程序级别配置的配置项
比如:
整个应用的验证模式配置项,如果你把它放在一个应用级别目录的下级目录时候。会报错。
又比如,新加一个 HttpModule ,如果你把它放在一个应用级别目录的下级目录时候,会不起作用。
但是,卸载一个 HttpModule 的配置,把它放在一个应用级别目录的下级目录时候,却起作用。
下面我们看一个对这个功能的测试
我们有这样一个站点,如下图:
其中 MyWeb200 是一个站点
WebApp01 和 WebApp04 都是一个虚拟目录(Virtual Directory)
虚拟目录 可以设置在跟根站点不在同一个目录下。
他们的不同之处在于WebApp04 这个虚拟目录被设置了应用程序级别,WebApp01 没被设置,则这个目录下的
应用程序级别是整个根站点下。
可以明显看到 WebApp04 下有 bin 目录, WebApp01 下没有
WebApp02 和 WebApp03 都是站点下的一个子目录,他们的目录跟根站点的目录有从属关系。
不同之于在于 WebApp02 设置了应用程序级别
WebApp03 没被设置。
如果我们在上述所有目录下,都增加了一个 HttpModule,起作用的只有以下几个目录的配置,其他目录下不起作用。
根站点 Web.config 中新设一个 HttpModule 起作用
WebApp01 虚拟目录下 Web.config 中新设一个 HttpModule 起作用
WebApp02 子目录下 Web.config 中新设一个 HttpModule 起作用
WebApp021 子目录下 Web.config 中新设一个 HttpModule 起作用
其他站点下 Web.config 中新设 HttpModule 不起作用,但是任何目录下,卸载一个指定的 HttpModule 起作用。
我上面用到的几个词的英文翻译:
虚拟目录 (Virtual Directory)
子目录 (subdirectory)
应用级别目录(application level)
参考:
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx
?dg=microsoft.public.dotnet.framework.aspnet&tid=3053b1b3-5edb-4716-99bc-cb476a61cf35&p=1
一个简单的HttpModule例子
http://www.cinenn.com/blog/105.shtml
总结:
只有一句话。
新增一个 HttpModule 只能是应用程序级别的设置,卸载一个 HttpModule 是目录层次的设置。
相关文章推荐
- 根目录做了url重写,虚拟目录运行提示“未能加载文件httpmodule或它的某一个依赖项。系统找不到指定的文件”解决方案
- IIS站点/虚拟目录中访问共享目录(UNC)以及建立后的应用程序的信任级别问题
- IIS站点/虚拟目录中访问共享目录(UNC)以及建立后的应用程序的信任级别问题
- Asp.Net_HttpModule的应用
- Tomcat配置虚拟目录、多域名、多个Http监听端口
- 在Asp.Net中使用HttpModule实现多个域名分别“绑定”到子目录
- Tomcat之URL配置(IP,端口号,默认应用,虚拟目录)
- 【转】配置子目录Web.config使其消除继承,用虚拟目录创建多个网站的方法
- IIS 虚拟目录应用
- 在Asp.Net中使用HttpModule实现多个域名分别“绑定”到子目录
- 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。
- JavaWeb学习篇之----web应用的虚拟目录映射和主机搭建(Tomcat)
- openssl和虚拟目录的配置--包括配置http和https等的端口
- [spring]事务传播级别隔离级别以及高并发下的应用经验
- 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。
- [spring]事务传播级别隔离级别以及高并发下的应用经验
- Tomcat 利用server.xml进行其他盘符的其他项目映射的部署以及JSP引用其他盘符的图片(虚拟目录及虚拟路径)
- ASP.NET学习笔记(四)-模板页,HttpHandler,IHttpModule应用
- 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误
- 配置子目录Web.config使其消除继承,用虚拟目录创建多个网站的方法