5

Nếu tôi tổ chức một trang ASP.NET với:IE8 không giữ phiên Biến

<%@ Page Language="C#" %> 
<!DOCTYPE html> 
<script runat="server"> 

    protected void btn_Click(object sender, EventArgs e) 
    { 
     lbl.Text = HttpContext.Current.Session["a"] == null ? 
         "null" : 
         HttpContext.Current.Session["a"].ToString(); 
    } 
    protected void btn_Click2(object sender, EventArgs e) 
    { 
     lbl.Text = HttpContext.Current.Cache["a"] == null ? 
         "null" : 
         HttpContext.Current.Cache["a"].ToString(); 
    } 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      HttpContext.Current.Session["a"] = "CBA"; 
      lbl.Text = "assigned Session Variable"; 

      HttpContext.Current.Cache.Add(
        "a", "ABC", null, 
        DateTime.Now.AddHours(2), TimeSpan.Zero, 
        CacheItemPriority.NotRemovable, null); 
     } 
    } 

</script> 

<html> 
<head> 
    <title>Testing Session</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Button ID="btn" runat="server" Text="read Session" OnClick="btn_Click" />&nbsp;&nbsp; 
     <asp:Button ID="btn2" runat="server" Text="read Cache" OnClick="btn_Click2" /> 
     <hr /> 
     <asp:Label ID="lbl" runat="server" /> 
    </div> 
    </form> 
</body> 
</html> 

trên đường chạy trốn đầu tiên tôi làm được những văn bản assigned Session Variable, nhưng khi nhấp vào đối tượng Session luôn là null

Có tùy chọn nào tôi cần bật/tắt để sử dụng các Biến phiên bình thường không?

hoạt động tốt trên IIS 6.0 và Cassini (theo VS 2008 và 2010).

Tôi bắt đầu để được mà không có ý tưởng về những gì đang xảy ra: o (

Any help is appreciated rất


quá trình trang ví dụ trên

alt text

alt text


More xét nghiệm cho thấy rằng điều này chỉ xảy ra trong IE (ie8 trong trường hợp này), Firefox, Safari, Opera, Chrome họ đều đưa ra "câu trả lời" đúng

alt text


kiểm tra các screen cast of the situation

+0

Mã xuất hiện khác với ví dụ. Sự kiện nhấp chuột nào "tải lại" lửa? Một trong những giao dịch với bộ nhớ cache hoặc phiên? –

+0

có, tôi đã kết thúc để thêm một nút 'Cache' cũng chỉ để xem Cache được xử lý như thế nào ... nó xử lý chính xác, nhưng tôi cần các biến Session như tôi muốn cho mỗi người dùng, không phải cho mỗi ứng dụng và dữ liệu là thứ tôi thực sự không cần phải có trong bộ nhớ cache. ** ScreenCast ** có mã mới (mã ví dụ ở đầu câu hỏi của tôi) – balexandre

+0

Tôi đang gặp vấn đề tương tự ... không ai biết điều gì có thể là vấn đề? Trang web này hoạt động tốt trên Firefox, nhưng người dùng (trên toàn quốc) sử dụng IE8. Trang web này hoạt động tốt trong IE8 cho đến vài ngày trước. Tôi không thể tìm được lời giải thích! –

Trả lời

2

sự cố có thể là dấu gạch dưới trong miền. xóa _ và xem điều tương tự có xảy ra không

+1

Chặn cookie khi máy chủ chứa dấu gạch dưới là một sự cố đã biết trong IE. Http://support.microsoft.com/kb/316112 – EricLaw

0

ID phiên được duy trì qua cookie được lưu trữ cục bộ bởi trình duyệt.

Bạn có đang chạy ở chế độ bảo vệ nào đó ngăn IE8 lưu trữ cookie không? Sẽ có biểu tượng cảnh báo màu đỏ trên thanh trạng thái .. một số nội dung dọc theo "... ngăn trang web này lưu trữ cookie"

+0

Tôi đã cài đặt IE thành "thấp", thêm miền vào Trusted Sites, trong Cài đặt nâng cao, tôi thậm chí thêm tùy chọn để hiển thị nội dung không tin cậy ... nhưng tất cả những gì tôi làm, tôi nhận được như cũ (tôi khởi động lại IE): o ( – balexandre