클라이언트에서 WCF net.tcp 서비스로 큰 xml을 보내는 데 문제가 있습니다. 메서드를 호출 할 때 특정 컴퓨터의 클라이언트가 메모리 부족 예외를 throw합니다. 내 로컬 컴퓨터에서 재현하십시오. 예외 메시지 : 33554432 바이트의 관리 메모리 버퍼를 할당하지 못했습니다. 사용 가능한 메모리 양이 적을 수 있습니다.WCF NetTcp 서비스 및 스트리밍 트랜스 포머
그래서이 문제를 해결할 방법을 읽을 때 스트리밍이 이어지는 길이되었습니다. 그래서 나는 따라 클라이언트와 서비스 모두에 바인딩 변경 : http://msdn.microsoft.com/en-us/library/ms789010(v=vs.110).aspx
I : 그러나
<netTcpBinding>
<binding name="NetTcpBinding_IPricerDataService" closeTimeout="00:10:00" transferMode="Streamed"
openTimeout="00:10:00" sendTimeout="00:10:00" maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647" />
</netTcpBinding>
, 나는 이것이 스트림 매개 변수를 사용하는 서비스 메소드 서명을 변경 또한 의미하는 인상이었다 이 작업을 수행하지 않았다면 메소드 시그니처는 원래대로 유지했지만 클라이언트는 이전과 마찬가지로 서비스 메소드를 여전히 호출 할 수 있으며 예상대로 작동합니다.
스트리밍 변환 코드가 예상대로 사용되지 않거나 스트리밍을 지원하기 위해 메서드 서명을 변경할 필요가 없다는 의미입니까? 내가 실제로 확인할 수있는 아이디어가 있습니까?
@DanielKelley 질문에 어떻게 대답하지 않습니까? '스트리밍 트랜스 폼 모드가 예상대로 사용되지 않거나 스트리밍을 지원하기 위해 메소드 서명을 변경할 필요가없는 것입니까? ', 할당되지 않은 버퍼에 대한 몇 가지 소문이 있습니다. – aevitas
@DanielKelley 감사합니다. 답변을 편집하여 "예,해야합니다."라고 간단히 말합니다. 그게 당신이 쫓고있는 것 같아요. 당신이 질문에 대답하지 않는다고 느끼면 다운 다운하라. – aevitas
@DanielKelley 고마워, 나는 내 대답을 정교하게 만들었다. – aevitas