同一个网站,根站点和虚拟目录站点 ASP.net 版本不一样,存在的一个麻烦问题。
来源:互联网 发布:税务总局电子申报软件 编辑:程序博客网 时间:2024/05/14 11:10
以前如果我们有这种需求(根站点和虚拟目录站点全是基于 .net 1.1):
在1.1根站点下,部署一个httpModule ,然后这个根站点下,有个1.1的虚拟目录,而这个虚拟目录不需要加载这个httpModule。 则需要做以下两步才可以达到效果:
1、在虚拟目录的web.config 文件中,卸载 需要的 httpModule.
<system.web>
<httpModules>
<remove name="ErrorLog"/>
</httpModules>
</system.web>
2、把 根目录下要用的 httpModule 组件也同步 Copy 到 虚拟目录下的 bin 目录下。
原因:
web.config 文件加载配置信息时候,要做的其中一部分事情如下:
ASP.net在处理httpModules 配置节时,其中当看到 Add 配置节的时候就立刻检查这个配置节定义的 type 是否存在。
因为虚拟目录的卸载 httpModule 节
所以根节点的主要 web.config 文件 要比 虚拟目录中 web.config(次要文件)
那么如果在处理的时候,并没有这个type(没有把dll复制过去或者放GAC),那么ASP.NET就会把找不到类型的异常直接抛出异常。
所以,需要把相关的DLL都要在根节点和虚拟目录都部署一下的。虚拟目录中的web.config 中卸载配置
以上内容请参考以下链接:
http://blog.joycode.com/dotey/archive/2004/11/30/40010.aspx
但是, 如果你是在 2.0 的根站点下,部署一个 1.1 的虚拟目录, 问题就来了(1.1的根站点部署2.0的虚拟目录也会有问题):
1、把 一个 2.0 版本的 httpModule 文件 copy 到 1.1 的虚拟目录,会产生以下异常:
分析器错误信息: 文件“*****”的格式无效。
原因:如上 你难道想 1.1 的 .net 加载 2.0 的文件??当然会报文件格式不对了。
2、如果1.1 的虚拟目录下部署的是 1.1版本的 httpModule, 2.0 的根目录部署的是 2.0 版本的 httpModule.
则很可能会产生如下异常:
找到的名为“******”的程序集清单定义与程序集引用不匹配。
原因:你的这个 httpModule组件. 在 2.0 和 1.1 版本的时候,PublicKeyToken 和 Version 等信息可能都变化了。当然不匹配了。
唯一可能解决问题的方法,就是
你的 httpModule 在 1.1 和 2.0 版本的时候,版本号、签名用的 key 文件、类的名称空间、类名等等都必须完全一样。
而这又不能体现版本升级。。。。。。。基本上不太现实。
上面的问题 会是一个非常苦恼的问题,您还不如把整个站点都设置为 1.1 或者都升级为 2.0。千万不要尝试一部分是 1.1,一部分是2.0 。否则你会死的很难看的。
- 同一个网站,根站点和虚拟目录站点 ASP.net 版本不一样,存在的一个麻烦问题。
- 同一个网站,根站点和虚拟目录站点 ASP.net 版本不一样,存在的一个麻烦问题。
- 管理IIS(创建站点和虚拟目录)的ASP版本
- 虚拟目录和站点的区别
- 《Asp.net & IIS7 高级编程》读书笔记之 IIS 站点、应用程序、虚拟目录的联系和区别
- ASP.NET站点配置问题
- 获取从 asp.net 网站的 IIS 站点名称
- Asp.net中如何处理一个站点不同Web应用通用Session的问题
- Asp.net中处理一个站点不同Web应用共享Session的问题
- Asp.net中处理一个站点不同Web应用共享Session的问题
- js获取网站根路径(站点及虚拟目录),获得网站的根目录或虚拟目录的根地址
- 一个很好的ASP.NET控件资源站点
- 一个很好的ASP.NET控件资源站点
- asp.net跳转到另外一个页面的中间部位和将站点生成静态页
- 一个全英asp.net资源站点
- [转]js获取网站根路径(站点及虚拟目录)
- js获取网站根路径(站点及虚拟目录)
- [转]js获取网站根路径(站点及虚拟目录)
- 配置TOMCAT中JAVA虚机内存(JVM)
- VB与Windows API 间的呼叫技巧
- 读出网卡号码
- 对程稚瀚案的分析
- 利用磁盘的序列号进行软件加密
- 同一个网站,根站点和虚拟目录站点 ASP.net 版本不一样,存在的一个麻烦问题。
- c#.net常用函数和方法集
- Visual Studio 2005 的 101 个示例
- 如何使TextBox只能输入数字?
- 从游戏中学习
- 在Oracle的FORM中对不同的状态采取不同的颜色显示
- 人生有两个目标
- Linux后台运行命令详述
- GB2312码BIG5码