多个Web项目通用Session的问题--转

多个Web项目通用Session的问题--转

前一段时间被同一个站点的不同Web项目通用Session的问题苦恼,搞得我很不爽,好多天都在想这个问题,在朋友的帮助下,找到了解决方法,网上也看了一些相关文章。不过这些文章描述的并不够详细,我把这些相关知识整理一下,方便自己以后查找,也方便以后碰到这样问题的人,不要到处找资料,拼凑资料。

首先说明几点:
1、不同站点或虚拟目录是不能共享Session的
2、VS.NET默认创建的Web工程是一个工程一个虚拟目录
3、多个工程最好只能有一套的Web.config和Global.asax
由于以上的原因我们用手动创建多个工程的时候就不能共享Session,但使用VS.NET中的创建->其它项目->企业级模板项目就不会出现这样的问题了。

解决这个问题并不难,注意两点就行了:
1、多个工程最好只能有一套的Web.config和Global.asax
把这些工程合并到一个虚拟目录下,至于Web.config和Global.asax,虽然一个工程可以配置一个,但是推荐还是整个web站点用一套配置,而且不同目录下的Web.config影响不同的目录下aspx的配置,如果根目录下和一个WEB应用程序目录下都有Web.config文件,而且都定义了,sessionState mode="InProc" 显然这两个应用的Session不可能共享了。
2、多个虚拟目录合并,或只用一个站点,就可以了。
具体做法是,在IIS设置里 打开子工程的目录 查看属性->目录->应用程序设置 中有个删除按钮,点那个删除就会把这个目录的虚拟目录去除,这样就OK了。

我遇到的问题就是没有注意到第二点。
我的做法是:
在资源管理器中工程目录点右键->共享->Web共享->然后指定一个名称,然后就用VS.NET打开就可以打开了,但就是不能共享Session。没有注意到IIS把里面的子工程也设为了虚拟目录。原来打开的时候VS.NET会把另一个工程也设置 为一个虚拟目录,所以Session就不能共享了。我唯一做的就是把那个虚拟目录删除就行了。就这么一个小问题搞的我好多天都没有睡好觉。希望大家不要学我哟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值