Iis 7 HTTP和HTTPS之间典型的ASP会话奇怪

Iis 7 HTTP和HTTPS之间典型的ASP会话奇怪,iis-7,asp-classic,Iis 7,Asp Classic,我有一个用经典ASP编写的电子商务网站,它使用会话来存储购物车内容和其他东西 项目在HTTP中添加到购物车,当用户签出时,它们将被带到HTTPS。此时不存在任何问题,HTTPS签出页面正确获取会话值 问题是,如果他们单击返回购物车(HTTP),会话将丢失 如果他们随后将项目添加到购物车中,他们将在购物车(HTTP)中正确显示 但是,当他们再次签出(HTTPS)时,在原始会话中消失之前的项目又回来了 如果他们返回HTTP购物车页面,不同的项目就会出现 总之,我第一次从HTTP转换到HTTPS时,它

我有一个用经典ASP编写的电子商务网站,它使用会话来存储购物车内容和其他东西

项目在HTTP中添加到购物车,当用户签出时,它们将被带到HTTPS。此时不存在任何问题,HTTPS签出页面正确获取会话值

问题是,如果他们单击返回购物车(HTTP),会话将丢失

如果他们随后将项目添加到购物车中,他们将在购物车(HTTP)中正确显示

但是,当他们再次签出(HTTPS)时,在原始会话中消失之前的项目又回来了

如果他们返回HTTP购物车页面,不同的项目就会出现

总之,我第一次从HTTP转换到HTTPS时,它工作得很好,但之后就好像有两个独立的会话

HTTP和HTTPS的域名完全相同

网站托管在共享托管环境中。它是64位服务器上的IIS7

我已经尝试过集成和经典的托管管道模式

在web.config中,我对HTTP和HTTPS的相同会话进行了设置,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <location path="Default Web Site">
        <system.webServer>
            <asp>
                <session keepSessionIdSecure="false" />
            </asp>
        </system.webServer>

你知道我如何解决这个问题吗

更新:查看HTTP头,当它转到HTTPS时,似乎创建了第二个ASP会话Cookie。不知道为什么这会清除第一个。当返回HTTP时,只有原始cookie,但它在会话中不再有任何值,因此新cookie可能已被分配,而前一个cookie不再有效

更新

实际上,当我在IIS中通过GUI进行设置时,这些设置是等效的,它更新的是
applicationHost.config
而不是
web.config
文件,也许这就是区别?可以在
%SystemRoot%\System32\inetsrv\config
中找到
applicationHost.config

由于您在共享主机环境中工作,因此可能无法访问该环境。我想到的另一件事是您的配置值,
路径
属性设置为
默认网站
。我猜这不会是您的共享托管网站的名称,我只会删除
path
属性,以便将配置应用于当前目录

对于ASP,您需要在IIS配置的ASP部分下指定
安全连接上的新ID
等于
False
(请参见图)。默认情况下,ASP将在安全连接和不安全连接之间切换时创建一个新cookie,将其设置为False将在HTTP和HTTPS之间维护相同的cookie


很抱歉,我注意到它们是相同的设置,但在IIS中更改此设置在过去一直对我有效。谢谢。我的托管公司在IIS中进行了更改,解决了问题。但是如果我删除位置路径,web.config可能会工作。