我需要你的帮助。
我从哪里开始,我可以找出我的配置有什么问题?
在我的开发机器上,当我使用"在浏览器中查看"在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" %>
任何帮助将不胜感激。 谢谢。
答案 0 :(得分:0)
将AutoEventWireup =“false”更改为两页顶部的AutoEventWireup =“true”