我说的问题,升级到vs2005的问题 原来做的程序都是.net1.1 vs2003开发的主平台目录 比如 C:\a dll文件都放在 c:\a\bin 下 以后开发的其他应用的项目放在 c:\a\aspnet\应用目录 ,这个应用的dll也拷贝到 c:\a\bin下,这样系统就会认为是一个项目,达到了session和两个项目类库的共享,所有项目都是ie6.0的一个应用池中 现在问题来了 升级为vs2005 和 。net2.0后,开发的项目,再放到c:\a\aspnet\应该目录 这样就不行了,因为要让这个应用也能运行起来,必须设置它也是虚拟目录,并把另建一个应用池,指定使用.net 2.0框架,才能行 而且现在我试验的,这个项目运行时,不会去c:\a\bin去找dll文件,必须放在c:\a\aspnet\应该目录\bin下
请大家集思广益,
高手指点
高手指点
高手指点
高手指点
高手指点
请大家集思广益,
高手指点
高手指点
高手指点
高手指点
高手指点
导入,远vs2003的程序不由我们控制
Session State Server 中的session也不能实现2个应用池里的session共享啊
通过继承SessionStateStoreProviderBase
具体做法见:
http://msdn.microsoft.com/zh-cn/library/ms178587(VS.80).aspx不同的App Pool(net 1.1 和net 2.0)只有通过土办法来了。
1. 用IcpChannel (Named-pipeline来通讯,双向通道?)
2. 用共享文件方式(Listener方式)。
3. 用数据库(轮循方式)。定义static Hashtable SessionList = Hashtable.Synchronized(new Hashtable());在Session_OnStart()中加入
if (!SessionList.ContainsKey(Session.Id)) {
SessionList.Add(Session.Id, Session);
} else {
HttpSessionState RemotingSession = SessionList[Session.Id] as HttpSessionState;
foreach(string key in RemotingSession.Keys) {
//同步远程Session值到当前Session中。
}
}然后将SessionList通过上面三种方式(Marshalling后)同步到其它App Pool.