2011-01-18 5 views
-1

개인 프로젝트 중 하나를 개발 중이며 문제가 발견되었습니다.WCF 및 ASP.NET 세션 상태 문제가있는 N 계층 아키텍처

  • 프레임 워크 :

    그것은 n 계층 아키텍처입니다.

  • WCF 프레임 워크 서비스.
  • 서버 쪽에서 WCF 프레임 워크 서비스에 연결하는 ASP.NET 컨트롤입니다.
  • 해당 컨트롤을 호스팅하는 ASP.NET 클라이언트.

WCF 서비스는 ASP.NET 호환 모드입니다.

무엇이 문제입니까? 각 요청은 다른 세션에 있습니다. 세션에 대한 저장된 값이 이전에 언급 한대로 각 요청에서 재설정되기 때문에 발견했습니다.

1) - 어떻게든지 분명하지만 확인을 원하는 - 세션이 클라이언트 당 서버이며,하지 않는 것이 서버 측에서 WCF 프레임 워크 서비스를 호출 사실을 뜻 :

나는 다음 두 가지 질문을했습니다 ?

2) 첫 번째 질문 사실 각 요청 후 새 세션을 얻는 이유는 무엇입니까?

결국 WCF 프레임 워크 서비스에서 ASP.NET 호환 모드를 사용하지 않도록 설정하고 자신의 세션 상태 관리를 개발하는 것은 어렵지만 힘든 작업은 아니지만 바퀴 재발생의 친구가 아닙니다. .

미리 감사드립니다.

답변

1

WCF의 기본 인스턴스화 모드는 Per-Call입니다. 서비스 호출 개체는 각 클라이언트 호출 중에 존재합니다. 클라이언트 호출이 WCF를 종료하면 IDisposable.Dispose가 호출됩니다.

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] 
class MyWCFService : IMyWCFContract.... 

가 두 개 더 인스턴스화 종류가 있습니다 : 같은 인스턴스화 유형을 설정할 수 있습니다 세션 별 서비스 및 공유 가능 서비스.

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] 
class MyWCFService : IMyWCFContract.... 

당신은 MSDN 행운

+0

감사에 대한 자세한 내용을 찾을 수 있습니다 : 당신이 당신의 WCF 서비스를 설정할 수 있도록

당신은, 당신의 프로젝트에 대한 세션 별 사용한다! 올바른 해결책이라고 생각합니다. 나중에 집에서 확인해 볼 것입니다 (저는 @ 일입니다). 나는 지금 해결책으로 표시한다. –

관련 문제