【问题标题】:Asp.net Session gets renewed between requests occasionallyAsp.net 会话偶尔会在请求之间更新
【发布时间】:2012-06-23 15:21:43
【问题描述】:

我正在使用 asp.net 和 c# 3.5 构建一个网站。 问题是用户会话在请求之间被清除。并非所有会话,只是在发生新请求或回发时突然更新该用户会话。 我正在使用 IIS7 和 Win2008 R2。查了一下发现没有回收,WorkerProcess设置为1,网站没有重启。只是一个用户会话被更新并获得新的 sessionId。不是所有的会话,只是更新一个用户会话。

这是一个很奇怪的问题,我搜索了网络并没有找到解决方案

如果你有任何线索?

【问题讨论】:

  • IIS 中的会话超时设置为多少?在你的 web.config 中?
  • 网站上的用户是登录的还是匿名的?
  • 一些线索:1)我在一个名为App_Log的文件夹中有一个日志文件,我自己创建了这个文件夹并将我的日志和异常保存在其中。 2) 我正在使用 HttpContext.Current.Session 来获取和设置我的变量。
  • 会话超时未设置,默认为 20 分钟。它发生在登录的用户身上。
  • 您使用的是 ASP.NET 表单身份验证吗?如果是这样,您确定是 Session 超时而不是 Forms Auth cookie?

标签: asp.net iis-7


【解决方案1】:

我想我找到了我的问题,问题名称是“规范域”。用户在其网址的开头没有 www 进入网站,但在请求之间(尤其是在 Respone.Redirect("~") 或当我将用户重定向到支付网关并返回时),网址变成带有 www 的网址。因此 cookie 会更新,此时用户会话丢失。

规范域名可以通过 IIS7 Url Rewrite 模块解决,在 SEO -> 规范域名中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-06
    • 2012-11-28
    • 2011-03-01
    • 2020-05-02
    • 2014-05-13
    • 2014-02-12
    • 1970-01-01
    相关资源
    最近更新 更多