Мне нужна ваша помощь.Сессия потеряна после ответа. Прямой
С чего начать, я могу узнать, что не так с моими конфигурациями?
На моей машине разработки, когда я использую «Просмотр в браузере» в Visual Studio 2015, мой код сохраняет значения сеанса.
Однако при переключении пользователя (другой учетной записи пользователя на моем компьютере с Windows) и использовании Visual Studio для просмотра одной и той же страницы значения сеанса теряются при переадресации страниц. Я также попробовал свой код на машине разработчика моего друга, а также потеряны значения сеанса.
Это связано с конфигурацией IIS Express? Может ли пул приложений IIS Express исчерпать память и переработать пул - что приведет к сбросу сеанса? Или это может быть связано с версией IIS Express 32bit/64bit на 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>
Результат SessionRedirect2.aspx после Response.Redirect:
A:
B:
Я повернулся трассировку и еще отметить, что значения сеанса теряются при перенаправлении на вторую страницу.
<%@ Page Trace="true" %>
Любая помощь будет принята с благодарностью. Спасибо.
я порылся и нашел некоторую информацию для IIS, но не IIS Экспресс на Microsoft TechNet: рециркуляция Рабочий процесс падения сеанса приложения state - https://technet.microsoft.com/en-us/library/cc781036(WS.10).aspx – SimplyInk