【发布时间】:2012-08-24 11:29:23
【问题描述】:
根据我们当前的设置,需要在两个站点之间维护镜像会话,一个在 IIS 6.0 中托管的现有 ASP.NET 网站,现在在 iFrame 中包含新网站,并在 IIS 7.5 中单独托管(它是 MVC3) .
关于如何使父会话与子网站会话保持一致,有人有什么建议吗?
我最初的想法是创建一个 ActionFilter 以在 OnActionExecuting 方法上向父站点上的各种 HTTPHandler 触发 HttpWebRequest。有人怀疑这将如何保持特定会话内联,可能缺少关于会话 ID 的各种知识?
类似:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
try
{
var request = WebRequest.Create(
ConfigurationManager.AppSettings["HeartbeatURI"]);
using (var webResponse = request.GetResponse())
{
var response = webResponse as HttpWebResponse;
if (response != null && response.StatusCode == HttpStatusCode.OK)
{
这里有人有什么建议/建议吗?谢谢!
更新:
在提出一些有用的建议后,我将调查浏览器是否有解决方案,例如:
function setHeartbeat() {
setTimeout("heartbeat()", 300000); // every 5 min
}
function heartbeat() {
$.get(
"http://soemthing:1234/heartbeathandler.ashx",
null,
function(data) {
setHeartbeat();
},
"json"
);
}
将按我的要求执行。
【问题讨论】:
-
我什至无法想象你认为代码会如何做你认为它会做的事情。
-
@AndrewBarber 还有什么更具建设性的补充吗?
-
我真的完全不知道如何解决这个问题,因为您似乎不了解会话的工作原理,从该代码。我的观点是:那行不通。但是不...我现在没有时间解释会话基础知识。也许稍后我会尝试回答。
-
@AndrewBarber 非常感谢。
标签: c# asp.net-mvc-3 session