2010-03-14 3 views
2

내가 더 보안이 없으며과 같이 스트리밍 코드 를 통해 인터넷 TCP 엔드 포인트 사용하려고 시도하는 시간 제한 예외 얻고와 :NetTcpBinding() TransferMode.Streamed

NetTcpBinding binding = new NetTcpBinding(SecurityMode.None); 
binding.TransferMode = TransferMode.Streamed; 
binding.SendTimeout = TimeSpan.MaxValue; 

동일한 코드가있는 경우 일 것을 나는 SecurityMode.None을 생략하거나 SecurityMode.Transport를 선택한다. 예외는 타임 아웃이 너무 낮다. 나는 recive, send, open, close에 대한 모든 타임 아웃을 추가하는 것을 지치고 Max와 그 didnt 작업에 모두 설정한다. 예제 코드를 사용하여

메신저 :이 시나리오에서 더 보안을 사용하지하는 방법에 대한 http://csharp-codesamples.com/2009/02/data-transfer-using-self-hosted-wcf-service/

모든 explenation이 appriciated 될 것이다.

덕분에, 토템

+0

클라이언트 측에서만 시간 초과를 설정 했습니까? 어쩌면 서버 측에서 시간 초과가 발생하여 스트림을 다시 스트리밍 할 수 있습니다. –

+0

타임 아웃은 securitymode.none과 동일한 설정으로 올바르게 설정되고 transportmode.bufferd 작업으로 전환됩니다. – totem

+0

예외 (메시지 및 스택 추적)에 대한 세부 정보를 게시 할 수 있습니까? –

답변

0

때때로 WCF가 잘못된 오류 메시지를 제공합니다.

스트리밍을 사용할 때 일부 보안 모드 만 작동합니다. 메시지의 길이를 모를 때는 메시지에 서명 할 수 없습니다.

전송 보안 모드가 작동하며 기본값이므로 전송 모드를 지정하지 않으면 작동합니다.

http://msdn.microsoft.com/en-us/library/ms731316.aspx

+0

SecurityMode.None이 작동하지 않아서 귀하의 설명을 이해하지 못합니다. 당신이 메시지를 서명 할 수 없다면 (나는 이해한다) 보안을 설정하지 않는 이유는 무엇이며 전송 보안 작업을 설정해야한다. – totem

관련 문제