Asp.net网站失去了更改客户端URL的会话

时间:2016-06-16 21:45:06

标签: asp.net session cookies iis-7

我有一个在IIS7上运行的asp.net网站,并且一直有一个大学的用户突然失去会话的问题。所有这些实例的共同点是,用户的客户端URL /主机地址,他们访问我们的网站,在他们的会话中途改变。要清楚,这就是我在他们的页面访问中记录的内容:

Request.UserHostAddress.ToString()

使用标准的asp.net cookie跟踪会话状态。 web.config中的相关行:

<sessionState mode="InProc" timeout="40"/>

网站不使用框架,并且使用单个工作进程(即没有Web园艺)从单个服务器(即不是Web场)运行。它仅定期发生在单个用户上,而其他用户的会话同时保持打开状态。

我已根据this article on troubleshooting Session loss将Cookie添加到要为网站记录的内容列表中。几个问题:

  1. 是否有可能是大学放弃会话cookie而我们的服务器甚至没有接收它们?如果是这样,启用cookie记录会选择这个吗?
  2. 如果与先前与之关联的网址不匹配,IIS是否可能会丢弃该网址?

1 个答案:

答案 0 :(得分:0)

Cookie保持与会话的连接及其与域的关联。在某些情况下,可能会在前面调用域www.而在其他情况下不调用域 - 并且cookie将丢失,因此会话就会丢失。

要避免在web.config上将该域名称为

<httpCookies domain="domainname.com" .... />

没有www.以保持与之相关的cookie。

现在,因为您使用作为服务运行的InProc并将会话保留在内存而不是数据库上,所以已知此服务因某些原因而丢弃会话。为避免这种情况,您必须使用数据库来保持会话。

其他情况可以是从https移至http,如果您只是为了保证安全,则会再次丢失。

相关Share session between ashx and aspx