728x90
728x170
대용량 데이터 전송시 Stream 에서 연결을 끊어버리는 오류가 발생되었습니다.
status(statuscode="internal",detail="Error reading next message, IOException: The request was aborted. Http2StreamException:The HTTP/2 server reset the stream. HTTP/2 error code 'INTERNAL_ERROR' (0x2)
그래서 확인해보니 몇 천건이면 상관없는데 10000건 이상의 데이터를 Stream 으로 전달하게 되면 연결이 끊어지고 데이터 전달이 되지 않았습니다.
해결방법은
responseStream.WriteAsync() 로 데이터 전달하기전에 아래 코드를 넣어 WriteOptions 을 BufferHint 로 주면 해결됩니다.
responseStream.WriteOptions = new WriteOptions(WriteFlags.BufferHint);
MaxSendMessageSize, MaxReceiveMessageSize 등을 늘려 보았지만 소용없음
deadline 을 적용해 봤는데 소용없음
Handler 를 이용해 봤지만 소용없음
등등 여러가지 시도해봤지만 소용없음
해결책은 WriteOptions 을 건드리는 방법뿐인데 당최 어떤 의미인건지 모르겠네요 ㅜㅠ
성능에 영향을 준다고 나오기는 하는데 성능이야 안나와도 되는게 먼저니 ..
성능에 얼마나 영향을 줄지는 지켜봐야겠습니다.
728x90
그리드형
'C#' 카테고리의 다른 글
bin obj 폴더 일괄 삭제하기 (0) | 2023.02.19 |
---|---|
[C#/gRPC] Interceptor 에서 옵션 변경하기 (0) | 2023.01.16 |
[C#] [링크] AlterNats (0) | 2023.01.13 |
[C#/Metric] An attempt was made to access a socket in a way forbidden by its access permissions. 에러 (0) | 2023.01.12 |
[C#/Metric] Grafana 에 대시보드 import 하기 - json (0) | 2023.01.12 |