在两个ASP.NET应用程序之间共享会话,其中一个嵌套在另一个ASP.NE
那么,在你问“你的意思是什么之后,一个嵌套在另一个之内?”我会尽可能简单地解释一下.
存在.NET Web应用程序(A).构建了一个补充应用程序(B),它可以处理几个相同的核心组件.之前的一家咨询公司以某种方式在应用程序A中“安装”了应用程序B,以便B可以背负A的会话.所以,像这样: - Application A (C:InetpubwwwrootApplicationA) + Application B (C:InetpubwwwrootApplicationAsupApplicationB 之前的公司没有留下关于他们如何或为什么这样做的文档,但它对他们有用.我现在面临的困境是:应用程序A升级,使B无用.我更新了B来运行A提供的新核心,但是当我完成时,另一个团队已经摧毁了之前的生产和测试服务器,我无法获得备份以查看它是如何配置的. 经过一系列的改进后,我能够通过切断B的web.config文件并删除重复的部分 – 在A的web.config中已存在的部分,在单个IIS应用程序和池中复制上面的层次结构.我还将B的bin文件夹中的所有文件转储到A的bin文件夹中. 两个站点都编译并由IIS提供服务,但我无法使用此结构从A的会话中读取任何内容.我对这个结果并不感到惊讶,但我需要找到一个解决方法.简而言之,A有一个存储在其会话中的sessionID,我需要用它来获取B中的数据源,因为A的创建者施加了一些疯狂的许可规则(sessionID需要传递给其核心API中的每个函数)用户授权). 关于为什么功能不再有效的任何想法(假设我已经正确地复制了旧环境),或者我如何解决它?移动到SQL服务器以获取会话状态不是一个选项 – 我无法更改有关应用程序A的任何内容. 我看了一下A的代码(就像我敢用Reflector一样),我试图从会话中检索的变量仍在那里并被使用. 任何想法都会很棒! 解决方法
由于它们是两个独立的应用程序,因此它们(显然)具有两个不同的会话范围.您可以在一个会话而不是另一个会话中,A中的会话可以在B中的会话之前到期,强制A在B仍在使用旧会话时创建新会话.没有什么可以将A链接到B,反之亦然,所以逻辑上没有直接的方式它们甚至可以共享对象,因为它们之间没有任何有意义的相关性.
缺点是 – 您不能(轻松)直接在两个不同的应用程序之间共享会话数据.此问题的常见解决方案是通过查询字符串或cookie(如果它们位于同一域中)在两个应用程序之间传递公共ID,并且都使用该ID引用它们都可以访问的数据库中的公共记录.从那时起,可以通过数据库共享信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – OData和区分大小写
- asp.net-mvc – MVC6剃须刀如何检测调试模式?
- asp.net 中用easyui中的treegird的简单使用
- asp.net-mvc-3 – MVC3下载单个文件
- asp.net – Microsoft WebMatrix和Visual Studio有什么区别
- asp.net-mvc – MVC Razor String Concat
- asp.net-mvc – WCF Web Api作为asp.net mvc 3应用程序的子
- asp.net-mvc – 将WebForm视图引擎标记转换为Razor视图引擎
- 获取当前ASP.NET Web Api 2操作的URL
- asp.net-mvc – 不能删除数据库,因为它目前正在使用MVC
- asp.net – TransferRequestHandler和BeginReque
- asp.net-mvc-3 – MVC 3:AutoMapper和项目/解决
- asp.net-mvc – 为什么log4net不记录nhibernate信
- asp.net-mvc – 无法使用IIS Express在Windows 1
- asp.net-mvc – 处理ASP.NET MVC中的路由错误
- 动态Linq的逻辑与和逻辑或的条件查询
- asp.net-mvc-3 – ASP.NET MVC 3和jQuery验证
- asp.net-core – ASP.Net 5登录类库
- 是否可以在.NET中将WinForm转换为WebForm?
- asp.net – 当用户按下文本框中的返回时,我可以取