我说的问题,升级到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下 
请大家集思广益, 
高手指点 
高手指点 
高手指点 
高手指点 
高手指点

解决方案 »

  1.   

    【mooddecode1980】
    导入,远vs2003的程序不由我们控制
      

  2.   

    用Session State Server, 本机也可以, 可以实现共享Session.
      

  3.   

    【rainxy2000】
    Session State Server 中的session也不能实现2个应用池里的session共享啊
      

  4.   

    vs 2003与vs2005的应用池不能共享的,目录分开放没关系,应用池要分别建
      

  5.   

    如果要两个不同的App Pool(同为net 2.0)实现共享, 只有实现自己的SessionStateStoreProvider
    通过继承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. 
      

  6.   

    不同的App Pool会生成不同的SessionID, 需要你实现自定义的SessionIDManager, 让它产生唯一的SessionID,并保存在Cookie中。