2013-02-26 3 views
4

는 배경 : 나는 (일반 오래된 예외) 예외를 던질 때 내 WCF 서비스에서 클라이언트 채널이 오류 상태를 입력하고 중단하고 내가 전에 다시 만들어 가지고보안을 사용할 때 WCF가 채널을 왜 잘못합니까?

나는 나타났습니다 해당 채널에서 다른 전화를 걸 수 있습니다. 괜찮아. 그것이 의도 된 방법입니다. 알 겠어. 그래서 나는 다른 호출을해야한다면 abort()를 호출하고 다시 생성한다.

그러나 보안이 활성화 된 바인딩을 사용할 때만 클라이언트 채널의 오류가 발생합니다. basicHttpBinding을 사용할 때 클라이언트에서 예외를 가져올 수 있으며 "오류 상태"라는 것을 알리지 않고 ServiceClient 객체를 계속 사용할 수 있습니다.

또한 wsHttpBinding 또는 netTcpBinding에서 보안을 해제하면 Exception 이후에 채널을 다시 사용할 수 있습니다.

질문 :

이란 것은 사용하지 못할 그래서이 채널을 잘못하게하는 바인딩의 보안에 대해 무엇입니까?

답변

1

보안을 사용하면 보안 세션을 설정하기 때문입니다. 해당 세션을 종료하면 채널이 오류 상태가되어 중단하고 새 세션을 만들어야합니다. BasicHttpBinding을 사용하면 세션이 진행되지 않습니다.

관련 문제