【问题标题】:Lost ASP Session Variable IIS 6.0 to 7.5丢失 ASP 会话变量 IIS 6.0 到 7.5
【发布时间】:2016-09-03 20:48:09
【问题描述】:

我已经阅读了很多关于该主题的内容,但我没有得到解决方案。 我已经尝试了社区发布的所有解决方案,但没有成功。

我正在将一个站点从 IIS 6.0 迁移到 7.5。该站点同时具有 ASP 和 ASP.NET 应用程序,因此我设置了两个不同的池。 ASP.NET 应用程序可以正常工作。

我遇到的问题是 ASP 应用程序。所有 ASP 应用程序都使用另一个应用程序,其目标是授予用户权限。当授予用户应用程序创建一个session ("accepted") 变量并且在重定向时它会丢失时,问题就出现了。 此功能在 IIS 6.0 中有效

我已经跟踪问题并确认重定向时出现错误。

我已尝试并检查以解决问题:

  1. 会话属性

    • 启用会话状态 = true
    • 超时:00:20:00
    • 模式设置:处理中
    • Cookie 设置 = 使用 Cookie
    • 使用托管身份表单模拟 = 选中
  2. 访问站点的端口::8685

  3. 我还检查了网络园艺,它没有启用,因为只有 1 个工作进程集。

我附上了我认为相关的屏幕截图


我编写了一个显示会话变量内容的 ASP 页面。在重定向之前,会话变量是正确创建的,但是当重定向发生时,信息会丢失。

我附上了我的企业政策允许我发布的代码:

response.write("Accepted: " & session("aceptado") & "<br>")
response.write ("SQL: " & mySQL & "<br>")
response.write("Accepted: " & session("aceptado") & "<br>")
dim i,j
j = Session.Contents.Count
Response.Write("Session contents: " & j & "<br>")
Response.Write("Contents: <br>" )
For Each i in Session.Contents
    Response.Write(i & "<br>")
Next

Response.write("isNull: " & IsNull(Session) & "<br>")
Response.write("¿Aceptado? " & Session("aceptado"))

用上面的代码,结果是:

重定向发生后检查会话状态的代码是:

<%response.buffer = true 
%>
<html>
    <h1>test</h1>
    <%
        dim i,j
        j = Session.Contents.Count
        Response.Write("Session contents: " & j & "<br>")
        Response.Write("Contents: <br>" )
        For Each i in Session.Contents
            Response.Write(i & "<br>")
        Next
    %>
    isNull: <%=IsNull(Session)%> <br>
    ¿Aceptado?: <%=Session("aceptado")%><br>
    incidencia : <%=Session("tipoincidencia")%><br>
    usuario : <%=Session("usuario")%>
</html>

执行上述代码的结果:

重定向发生在最后两张图片之间

【问题讨论】:

  • Session State 属性与经典 ASP 会话状态完全无关,它是 ASP.Net 特定的(这就是为什么在 IIS 7 及更高版本中它位于 ASP.Net 部分下)。看起来在 ASP 会话属性中New ID on Secure Connection 设置为True,重定向切换协议 HTTP 到 HTTPS 可能吗?见Classic ASP session weirdness between HTTP and HTTPS
  • 没有 HTTP 到 HTTPS 切换协议发生。我尝试将“安全连接上的新 ID”更改为 False,但没有区别
  • 欣赏您提供的所有屏幕截图,但没有任何代码(特别是调用重定向的位置)无法再提供任何帮助。
  • 我刚刚更新了这个问题。由于我的企业政策,我无法发布所有代码。重定向是在Response.write("¿Aceptado? " &amp; Session("aceptado")) 行执行之后。重定向到第二张图片(带有测试标题的那张
  • 感谢您提供代码,这很有帮助,但 Response.Redirect 是我们感兴趣的,它只显示前后。

标签: asp-classic iis-7.5 iis-6 session-variables session-cookies


【解决方案1】:

我的解决方法是简单地每隔 X 启动一个 ajax 调用(其中 X 大约是会话到期时间的一半,在我的情况下为 7.5min)。

它不是超级干净,但可以完成工作。

【讨论】:

    猜你喜欢
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 2011-12-05
    相关资源
    最近更新 更多