2015-10-22 3 views
0

Мне нужна ваша помощь.Сессия потеряна после ответа. Прямой

С чего начать, я могу узнать, что не так с моими конфигурациями?

На моей машине разработки, когда я использую «Просмотр в браузере» в 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" %> 

Любая помощь будет принята с благодарностью. Спасибо.

+0

я порылся и нашел некоторую информацию для IIS, но не IIS Экспресс на Microsoft TechNet: рециркуляция Рабочий процесс падения сеанса приложения state - https://technet.microsoft.com/en-us/library/cc781036(WS.10).aspx – SimplyInk

ответ

0

Изменение AutoEventWireup = «ложь» в AutoEventWireup = «истина» в верхней части обеих страниц

Смежные вопросы