2 개의 프로젝트와 참조로 호출되는 2 개의 클래스 파일이 포함 된 솔루션이 있습니다. 내 프로젝트 중 하나에서 Session.Start 블록의 Global.asax에 데이터베이스에서 몇 가지 변수를로드하고 세션 변수로 설정하는 코드가 있습니다. Global.asax에 중단 점을 넣으면 변수가 실제로 올바르게 설정되었는지 확인할 수 있습니다.ASP.NET C# 세션 변수가 손실 됨
내 코드 숨김 모듈 또는 프로젝트의 클래스에있는 클래스의 세션 변수를 참조 할 때 해당 변수가 있습니다. 그러나 참조 (본질적으로 공유 클래스)에 의해 호출되는 클래스 중 하나에서 참조 할 경우 세션 변수는 모두 null입니다.
HttpContext.Current.Session [ "varName"]을 사용하여 클래스의 변수에 액세스합니다 (표준).
이 세션 변수에 액세스하려면 다른 것이 있습니까? 이름 공간 문제 일 수 있습니까?
글쎄, "관심의 분리"관점에서 볼 때 "다른"프로젝트는 웹 환경을 직접 인식하지 않아야합니다. 세션의 어떤 값을 필요로하는 "다른 프로젝트"로 전달할 수 있습니까? – RQDQ
시도해보십시오 : System.Web.HttpContext.Current.Session [ "varName"]. 또한 세션을 읽으려고하는 ASP.NET 페이지 수명주기의 단계 (예 : 세션을 읽으려고 할 때 세션이 아직로드되지 않았을 가능성이 있습니까? –
모에 - 시스템에 액세스하는 데 사용되는 URL에 따라 로그인 화면에 나타나는 로고를 사용자 정의하고 있습니다. 단계별로 살펴보면 global.asax에 하나의 중단 점을 설정하고 먼저 중지하고 변수가 설정됩니다. 그러면 다음 중단 점은 내 로그인 모듈이 데이터베이스에서 로고를로드하려고 할 때입니다. 그 '다른'공유 클래스에서 프로 시저를 호출하여 이미지로드를 처리하고 데이터베이스 이름이 null입니다. 나는 그것이 작동하는 모듈에서 세션 변수를 가져 와서 그것을 이미지를로드하는 클래스 int로 전달하려고 시도 할 수 있다고 생각한다. 나는 그것을 시도 할 것이다. –