3

我维护一个经典的 ASP 网站,托管在 IIS6 上(或者更确切地说:我一直在维护它)。一段时间以来,我注意到会话 Cookie 正在此站点中“收集”:

证明

我已经摆弄了应用程序池回收间隔并完全重新启动 IIS 等。但是,不知何故,这个问题一直存在。起初似乎只有一个 cookie,即使浏览了一段时间后,仍然只有一个 cookie。然后,过了一段时间(比如几天、几周),我再次注意到 cookie 包含许多 ASPSESSIONIDXXX cookie。

没有遇到任何会话丢失或任何事情;一切正常,如预期的那样。只是我的cookie随着这个会话垃圾而不断增长。所有浏览器都存在该问题(表明网站/网络服务器存在问题)。

我看过这个问题- 该网站不在任何“网络花园”或应用程序池中,其中包含多个进程或多个服务器。也没有代理服务器或任何东西。

项目周围散布了一些Session(...)代码,我看过它,但除了Session("FOO") = barand之外没有什么奇怪的地方发生bar = Session("FOO")

我正在寻找:

a)此问题的解决方案
b)解决方法:删除所有这些 cookie 的(体面)方法,“当前”除外

4

1 回答 1

0

请注意,无论您设置什么回收间隔,IIS 都会在一定时间(通常是几天)和/或一段时间不活动后重新启动应用程序,当这种情况发生时,会话 cookie 将丢失/重新生成. 您可以通过选择有问题的应用程序池并转到“高级设置->回收->生成回收事件日志条目”来配置 IIS (7) 以在应用程序回收时记录日志,然后您将能够在事件查看器中看到何时/为何回收应用程序。

此外,在 IIS 下ASP->Services->Session->New ID on Secure Connection确保它是错误的,否则您将拥有不同的会话 cookie,具体取决于页面是 http 还是 https。

我发现这篇文章中有人编写了一个解决方法来删除那些可能对您有帮助的 cookie... http://forums.iis.net/t/1155657.aspx

于 2013-10-03T17:17:01.897 回答