의 인스턴스 변수에 OperationContext.Current 저장. 서비스 호스트는 InstanceContextMode.PerCall로 설정되어 있으므로 모든 새 요청이 자체 인스턴스를 가져옵니다.나는 저장하고 WCF 서비스 호스트 인스턴스의 인스턴스 변수에 OperationContext.Current 개체를 참조하는 것이 현명 있는지 알고 싶어 WCF 서비스 인스턴스
나는이 물어 그 이유는 WCF 스레드 선호도를 보장하지 않습니다 becuase이다. 경우에 따라 WCF는 한 스레드에서 요청을 시작하고 다른 스레드에서 요청을 끝낼 수 있습니다.
OperationContext.Current 객체는 스레드 로컬 저장소에 저장됩니다. 새 스레드가 동일한 작업에 사용될 때 WCF는 새 스레드로 전파됩니다. 이 이벤트에서
, WCF는 스레드가 다른 사용을 시작할 때, 내 서비스 인스턴스의 인스턴스 변수에 저장 한 OperationContext 개체에 액세스하는 것은 여전히 안전합니까? 이interface IContextService
{
Message RequestMessage{ get;}
string SessionId{ get;}
}
같은 그런 구현이 -
OperationContext.Current를 사용하는 대신 인스턴스 변수를 사용하면 어떤 이점이 있습니까? –
우리는 WCF 서비스를 단위 테스트 할 수있는 종속성 주입 기술을 연구하고 있습니다. –