2011-01-16 2 views
6

신뢰할 수있는 세션의 매우 흥미로운 동작이 발생했습니다. netTcp 바인딩 + 이중 채널 + 신뢰할 수있는 세션을 사용하고 있습니다.WCF 전송 보안이없는 신뢰할 수있는 세션은 시간에 오류가 발생하지 않습니다.

channel.faulted에서 수신 대기하려고 할 때 보안 모드가 전송으로 설정되어 있으면 클라이언트의 연결이 끊기면 오류 이벤트가 즉시 발생합니다.

그러나 바인딩의 보안 모드를 없음 또는 메시지로 설정하면 오류가 발생한 이벤트가 더 이상 같은 상황에서 실행되지 않습니다. 그들은 결국 신뢰할 수있는 세션이 그 시간에 심장 이길 메시지를 보낼 것이라고 이해 서버 측에서 ReciveTimeout의 절반을 잘못 받게됩니다.

질문은 : wcf 바인딩이 제 시간에 오류가 발생하지 않는 이유는 무엇입니까?

이 경우에 대한 임시 해결 방법은 수동으로 "ping"연결을 할 수 있다는 것입니다.

+0

정확히 무엇이 문제입니까? 왜 그런지 묻는거야? ... 아니면 무엇을 할 수 있니? –

+0

예, 불확실합니다. 왜 그런지 알고 싶었고 해결 방법을 게시했습니다. – Yuan

답변

0

기본적으로 NetTcp 바인딩은 Transport securityWindows credentials을 사용합니다. BasicHttp와 WebHttp를 제외한 모든 바인딩은 기본적으로 보안됩니다.

+0

맞습니다. 그래서 securitymode를 None으로 설정해야하고 신뢰할 수있는 세션이 더 이상 오류를 발생시키지 않아야합니다. – Yuan

관련 문제