다음을 통해 공유


IContextManager.Enabled 속성

정의

컨텍스트 관리를 사용하도록 설정했는지 여부를 나타내는 값을 가져오거나 설정합니다.

public:
 property bool Enabled { bool get(); void set(bool value); };
public bool Enabled { get; set; }
member this.Enabled : bool with get, set
Public Property Enabled As Boolean

속성 값

컨텍스트가 활성화되면 true이고, 그렇지 않으면 false입니다.

설명

컨텍스트 관리를 사용하도록 설정하면 컨텍스트 채널은 해당 수명 동안 컨텍스트를 캐시합니다. 컨텍스트는 채널 속성을 통해 채널에서 메서드를 IContextManager 호출 GetContext 하여 검색할 수 있습니다. 채널 속성에서 메서드를 호출 SetContext 하여 열기 전에 컨텍스트를 사용하여 채널을 미리 초기화할 수도 있습니다. 채널이 컨텍스트로 초기화되면 다시 설정할 수 없습니다.

다음은 이 모드의 고정입니다.

  • 채널이 열린 후 에 대한 SetContext 모든 호출은 을 InvalidOperationExceptionthrow합니다.

  • 나가는 메시지에서 를 통해 컨텍스트를 ContextMessageProperty 보내려는 모든 시도는 을 throw합니다 InvalidOperationException.

  • 컨텍스트가 있는 서버에서 메시지를 받은 경우 채널이 컨텍스트를 사용하여 이미 초기화된 경우 가 ProtocolException throw됩니다. 컨텍스트를 명시적으로 설정하지 않고 채널이 열리는 경우 서버에서 초기 컨텍스트를 받을 수 있습니다.

  • 들어오는 메시지의 는 ContextMessageProperty 항상 null입니다.

컨텍스트 관리를 사용하도록 설정하지 않으면 컨텍스트 채널이 컨텍스트를 관리하지 않습니다. ContextMessageProperty를 통해 컨텍스트를 검색, 관리 및 적용하는 것은 애플리케이션의 역할입니다. 채널 속성을 통해 IContextManager 호출 GetContext 하거나 SetContext 를 사용하려고 시도하면 가 발생합니다InvalidOperationException.

컨텍스트 HTTP 쿠키를 제외한 모든 HTTP 쿠키는 채널 수준에서 처리됩니다. 컨텍스트 HTTP 쿠키는 애플리케이션 수준에서 관리됩니다. 이는 채널이 공유되어 가 대상으로 하는 다른 인스턴스와 통신할 때 예기치 않은 ContextMessageProperty결과를 초래할 수 있습니다. 다음 표에서는 가 또는 false로 설정된 true 경우 Enabled HTTP 쿠키가 어떻게 영향을 받는지 보여 줍니다.

바인딩 IContextManager.Enabled 값 컨텍스트 HTTP 쿠키 범위 기타 HTTP 쿠키 범위
BasicHttpBinding 해당 없음 Channelfactory Channelfactory
BasicHttpContextBinding true 채널 채널
BasicHttpContextBinding false 애플리케이션에서 명시적으로 관리하는 각 메시지 채널

적용 대상