2010-02-02 3 views
3

채널 팩토리를 사용하고 asp.net mvc에서 캐싱하려고합니다. 상태를 알아야 할 때 PerSession 인스턴스 모드를 사용하고 있습니다. 이 때문에 프록시를 즉시 닫을 수 없습니다. 그리고 나는 매번 프록시를 닫으려면 을 다시 열고 싶지 않습니다. 프록시를 열어두면 12 번째 시간이 초과됩니다. 나는 동시 세션 시간 초과를 늘릴 수 있지만 그것이 맞는지 확인하려면 인지 알고 싶습니다. 나는 WCF에 처음이에요. 제 질문이 어리석은 짓이라면 용서해주십시오. - 미리 감사드립니다. PrattWCF 프록시 캐싱?

+2

왜 캐시할까요? –

+0

시나리오를 설명해 드리겠습니다. 사용자가 로그인하고 모든 데이터가 다른 사이트에서 호스팅되는 wcf 서비스에서 전송됩니다. 따라서 동일한 사용자의 경우 프록시는 서비스의 모든 다른 데이터 부분에 액세스하기에 적합해야합니다. 데이터 서비스에 액세스 할 때마다 프록시를 만들거나 열고 싶지 않습니다. global.asax의 세션 시작 이벤트에서 캐싱하고 모든 데이터 검색을 위해이를 다시 사용합니다. 성능 측면에서 더 나은 다른 접근법이 있습니까? – Pratt

답변

1

기본적으로이 기능이 켜져 있지만 답변은 폼 인증 요소에서 slidingExpiration 속성을 활성화 할 수 있습니다. 이를 통해 각 호출 후에 타이머가 시간 초과 값으로 재설정되어 세션이 사용되는 동안 활성 상태로 유지됩니다.

예, 세션 시간 제한에 도달하면 다시 서비스를 accesss 할 수있는 전에 재 인증해야합니다 응답 코멘트 -

MSDN Link: Forms Authentication & slidingExpiration property

편집을 참조하십시오. 시간 초과 값을 사용자가 더 이상 활성 상태가 아닌 것으로 간주하는 비활성 시간 (분)으로 설정해야합니다 (기본값 30 분). 사용자가 계속 전화를 걸면 슬라이딩 만료가이 값을 재설정합니다. 나는 당신에게 그것을 증명하기 위해 여러 가지 시나리오로 1 분으로 설정된 타임 아웃으로 간단한 테스트를 시도 할 것이다.

+1

이것은 좋지만 좋지만, 내가 닫지 않고 시간이 없으면 내 프록시는 어떻게됩니까? clr이 청소를 담당합니까? – Pratt

관련 문제