2012-11-09 24 views
11

Tôi nhận được lỗi 'trạng thái phiên không có sẵn trong ngữ cảnh này'.Trạng thái phiên không có sẵn trong ngữ cảnh này - Trong Global.asax

enter image description here

Các lỗi được lồng trong tham số gửi của một số phương pháp trong tập tin Global.asax:

  • Application_BeginRequest
  • Application_AuthenticateRequest
  • session_start
  • Application_Error

Lỗi xảy ra khi tải trang đầu tiên (và tất cả các lần tải trang sau đó).

Tôi đã thêm một trang hoàn toàn mới và trống, WebForm1.aspx, vào dự án và biến nó thành trang bắt đầu của tôi.

Bạn nghĩ rằng không có gì có thể xảy ra trên trang trống. Không có mã nào của tôi được thực thi, theo như tôi thấy, khi tải một trang trống. Nhưng tôi vẫn nhận được lỗi trạng thái phiên.

Dự án của tôi hoạt động hoàn toàn tốt. Không có trang lỗi nào được hiển thị. Không có hành vi không chính xác bất cứ lúc nào.

Nhưng thực tế là lỗi phiên này hiển thị trong thông số người gửi của dự án hiện tại của tôi, lỗi của tôi. Lỗi này là không phải được tạo trong một dự án trống mới.

Điều gì có thể là nguyên nhân của lỗi này trong dự án hiện tại của tôi?

Làm cách nào để theo dõi nơi xảy ra lỗi? Tôi không thể đặt điểm ngắt trong mã ASP.NET là dưới mui xe. Hay tôi có thể?

Dưới đây là cấu hình phiên của tôi:

<pages enableSessionState="true" /> 
<sessionState mode="InProc" cookieless="false" timeout="20" /> 

Cập nhật:

Tôi vừa phát hiện ra rằng một dự án hoàn toàn mới trống cũng có lỗi này trong các object sender. Nó có thể nhìn thấy trong các phương thức Application_BeginRequest và Application_AuthenticateRequest. Nhưng dự án trống không tạo ra sự kiện Application_Error, giống như dự án khác của tôi.

Trả lời

23

Bạn đang yêu cầu trạng thái phiên quá sớm trong chu kỳ. bạn cần phải làm điều đó trong Application_AcquireRequestState

+0

Tôi không yêu cầu bất cứ điều gì. Không có mã nào của tôi được thực thi trước khi nhìn thấy lỗi này trong đối tượng người gửi. Lưu ý rằng các phương thức được liệt kê cũng bao gồm phương thức Application_Error. Lỗi chắc chắn được tạo. Và tôi không thể biết nó đến từ đâu. – Jay

+1

Đây phải là câu trả lời. Đây là lý do nếu chúng tôi không nhận được SessionState trong bất kỳ sự kiện nào trước đó. –

+0

Cảm ơn bạn, điều này đã giải quyết được vấn đề của tôi trong cùng một tình huống giống như OP. +1 – Deverill

3

"Nếu một cây rơi trong rừng và không có ai xung quanh để nghe nó, nó có tạo ra âm thanh không?"

Không xem thuộc tính Phiên tại điểm chưa có sẵn.

+1

Tôi không. Các sự kiện Application_BeginRequest kích hoạt sau khi sự kiện Session_Start đã kích hoạt, vẫn hiển thị lỗi. Và sau đó có sự kiện Application_Error được kích hoạt. Một lần nữa ... lỗi này xảy ra khi tải một trang trống và bạn có thể thấy không có mã nào trong Application_Start có thể gây ra lỗi này. – Jay

Các vấn đề liên quan