【问题标题】:Session lost after Response.RedirectResponse.Redirect 后会话丢失
【发布时间】:2016-01-21 10:19:24
【问题描述】:

我需要你的帮助。

我从哪里开始可以找出我的配置有什么问题?

在我的开发机器上,当我在 Visual Studio 2015 中使用“在浏览器中查看”时,我的代码会保留会话值。

但是,当我切换用户(我的 Windows 计算机上的另一个用户帐户)并使用 Visual Studio 查看同一页面时,会话值会在页面重定向中丢失。我还在朋友的开发机器上尝试了我的代码,会话值也丢失了。

这是由于 IIS Express 配置造成的吗? IIS Express 应用程序池是否内存不足并回收池 - 导致会话被重置?或者这可能是由于 64 位机器上的 IIS Express 版本 32 位/64 位造成的?

这是我测试此行为的示例代码:

SessionRedirect.aspx

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="SessionRedirect.aspx.vb" Inherits="Sandbox_SessionRedirect" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <p>
            A: <% Response.Write(Session("A")) %>
        </p>
        <p>
            B: <% Response.Write(Session("B")) %>
        </p>
        <asp:Button ID="Button1" runat="server" Text="Go" />
    </div>
    </form>
</body>
</html>

SessionRedirect.aspx.vb

Partial Class Sandbox_SessionRedirect
    Inherits System.Web.UI.Page

    Private Sub Sandbox_SessionRedirect_Load(sender As Object, e As EventArgs) Handles Me.Load
        Session("A") = "A"
        Session("B") = "B"
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Session("B") = "bounce"
        Page.Response.Redirect("SessionRedirect2.aspx", False)
    End Sub
End Class

SessionRedirect2.aspx

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="SessionRedirect2.aspx.vb" Inherits="Sandbox_SessionRedirect2" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <p>
                A: <% Response.Write(Session("A")) %>
            </p>
            <p>
                B: <% Response.Write(Session("B")) %>
            </p>
        </div>
    </form>
</body>
</html>

Response.Redirect 后SessionRedirect2.aspx的结果:

答:

乙:

我打开了跟踪,但仍然注意到重定向到第二页时会话值丢失。

<%@ Page Trace="true" %>

任何帮助将不胜感激。 谢谢。

【问题讨论】:

标签: asp.net vb.net session visual-studio-2015 iis-express


【解决方案1】:

将两个页面顶部的 AutoEventWireup="false" 更改为 AutoEventWireup="true"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-08
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    相关资源
    最近更新 更多