2011-03-31 3 views
0

다른 wcf 서비스 (ServiceA)에 의해 cnsumed wcf 서비스 (serviceB) 작성했습니다.wcf-wcf 바이트 []/memorystream/base64string 성능 향상을 위해

ServiceA와 ServiceB 모두 동일한 시스템을 실행합니다. nettcpbinding 사용하고 있습니다. (wcf-wcf commnucation에 대한 좋은 옵션이기도하므로이 두 서비스는 동일한 시스템의 인트라넷에 있습니다).

Operation ServiceB의 작업 계약 매개 변수는 frontimage, backimage입니다.

성능 향상을 위해 프런트 이미지와 백 화상을 전달하는 가장 좋은 방법은 무엇입니까? 제가

i..e 여기

가 Serviceb

위한 동작 ocntract이다 바이트 []를 사용하고

해시 GetConvertedImage (바이트 [] frontImage 바이트 [] backImage);

memorystream 또는 base64string을 사용하면 성능이 향상됩니다. 내 질문은 byte [] 대신 사용됩니다. GZipStream은 어떻습니까?

ServiceA에서 소비하는 동안 필수 매개 변수를 전달할 수 있습니다. 목표는 성과를 향상시키는 것입니다.

byte []/memorystream/base64string 외에도 큰 이미지를 처리 ​​할 때 성능을 향상시킬 수있는 다른 방법이 있습니다.

이 좋은 내가이 시나리오

또한 사용하고 nettcpbinding을 adivce하시기 바랍니다.

답변

0

바이트 배열 대신 스트림을 표시하도록 서비스를 수정할 수 있습니다. 그런 다음 전송 모드를 스트리밍으로 설정할 수 있습니다.

훨씬 더 자세히 on MSDN

+0

그러나 스트림 권한으로 하나의 매개 변수 만 허용합니다. – ram

+0

스트리밍을 사용하는 경우 하나의 매개 변수 만 스트림 오른쪽으로 허용합니다. 제 경우에는 APS 2 이미지를 원합니다. 이 경우 나는 2 개의 작업 계약과 2 개의 아이보 케이션을 만들 필요가 있습니다. plesae 조언. 스트림으로 2 개의 pramaters를 전달할 수있는 방법이 있습니까 – ram

+0

두 개의 스트리밍 된 작업을 호출하는 비용은 이진 데이터를 하나의 SOAP 메시지로 직렬화하는 비용보다 훨씬 적습니다. 사용자 정의 헤더를 사용하여 이미지에 대한 추가 정보를 전달할 수 있습니다 (예 : 나중에 이미지를 페어링 할 ID). –

관련 문제