Response.Redirect

时间:2015-10-22 07:53:59

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

我需要你的帮助。

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

在我的开发机器上,当我使用"在浏览器中查看"在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 的结果:

  

A:

     

B:

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

<%@ Page Trace="true" %>

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

1 个答案:

答案 0 :(得分:0)

将AutoEventWireup =“false”更改为两页顶部的AutoEventWireup =“true”