2011-10-01 10 views
4

내 C# .net 웹 응용 프로그램의 백그라운드 스레드에서 내 프로젝트 세션에 액세스하려면 어떻게해야합니까?백그라운드 스레드에서 세션에 액세스 할 수 있습니까?

세션 값 = null을 제공합니다.

아이디어가 있으십니까?

+0

당신이 이것을하고 싶은 것을 진술하십시오. 일반적으로 이와 같은 작업에는 동기화가 필요합니다. 이렇게하면 실제적인 프로그래밍을 할 수 있습니다. 현재 세션에 액세스하여 전역 var (정적 클래스)에 저장할 수 있습니다. – mozillanerd

+0

Ajax.ajaxMethod (...)는 아약스를 통해 페이지의 컨트롤에 액세스 할 수 없기 때문에 배경으로 오래 실행하는 작업이 필요합니다. Windows 서비스를 사용하고 싶지 않은지 확인하십시오. 스레드를 사용해야하지만 스레드가 프로젝트 세션 변수에 대한 prob를 가지고 있습니다. –

답변

3

당신은 ASP.NET과 배경 스레드를 사용하여 매우 조심해야합니다. 스레드가 실행될 때까지 "현재"요청은 끝날 것입니다. 즉, 페이지 나 요청 또는 흥미로운 내용에 액세스 할 수 없습니다. 사용

0

당신은 세션에 액세스 할 수 있지만 당신은 당신의 데이터를 같은 방법으로 공유 할 수 : HttpRuntime.Cache

염두에 두어야 할 몇 가지가 있지만이 있습니다 세션과 달리, 캐시가 만료 않습니다. 또한 캐시는 모든 웹 사용자가 공유합니다.

관련 문제