게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[c#]브레이크 포인트를 걸면 잘 실행되는데 안찍으면 문제가 생깁니다
게시물ID : programmer_14570짧은주소 복사하기
작성자 : 후!하!후하
추천 : 0
조회수 : 1453회
댓글수 : 2개
등록시간 : 2015/11/24 01:59:35
디버깅.png

대략 위와 같이 생긴 메서드 입니다.
(소스코드는 위가 전부입니다. 아래 부분은 그저 try ~ catch와 로그메시지 찍는 부분밖에 없습니다)

분명 저기다가 브레이크 포인트 찍고 하나하나 실행시키면 웹서버에 잘 업로드가 되는데

브레이크 포인트를 안찍으면 업로드가 안됩니다..

Async 함수라 그런건가요 ㅜㅜ 

과제 제출이 얼마남지 않았는데 도와주세요 ..

--추가--
조금 설명을 덧붙이자면,

위 메서드를 실행하기 전에 이미지 파일들을 동영상 파일로 만들어 파일시스템에 저장하고,

그 경로명을 위 메서드로 전달하면,

파일시스템에 있는 비디오를 읽어서 Http 프로토콜로 웹서버로 Post하는 메서드입니다 

내부에 브레이크 포인트를 걸고 코드 하나하나 실행하면 서버로 업로드가 잘 됩니다.

하지만 브레이크 포인트를 걸지 않으면 서버로 업로드가 안됩니다
(디버깅 모드에서도)

어디서 문제가 발생하는지 감이 잡히지 않아 질문을 남기게 되었습니다

-- 추가 --

ㅜㅜ 죄송합니다. 문제 질문이 조금 잘못되어 질문을 조금 수정하겠습니다.

로그기록을 확인해 본 결과,

브레이크 포인트를 찍은 경우에는 문제없이 잘 전송되는걸 확인했습니다.

하지만

브레이크 포인트를 찍지 않은 경우에는 

[2015-11-24 오전 2:20:23]
 Message : System.AggregateException: 하나 이상의 오류가 발생했습니다. ---> System.Net.ProtocolViolationException: 스트림에 쓸 바이트가 지정된 Content-Length 바이트 크기를 초과합니다.
   위치: System.Net.ConnectStream.InternalWrite(Boolean async, Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
   위치: System.Net.ConnectStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
   위치: System.Net.Http.StreamToStreamCopy.TryStartWriteSync(Int32 bytesRead)
   위치: System.Net.Http.StreamToStreamCopy.BufferReadCallback(IAsyncResult ar)
   --- 내부 예외 스택 추적의 끝 ---
   위치: System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   위치: WebManager.PushToServer(DetectedThing detectedThing, String url, String videoPath) 파일 D:\cloud\OneDrive\MyApps\Moving Object Detection CCTV\Moving Object Detection CCTV\Utils\WebManager.cs:줄 53
---> (내부 예외 #0) System.Net.ProtocolViolationException: 스트림에 쓸 바이트가 지정된 Content-Length 바이트 크기를 초과합니다.
   위치: System.Net.ConnectStream.InternalWrite(Boolean async, Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
   위치: System.Net.ConnectStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
   위치: System.Net.Http.StreamToStreamCopy.TryStartWriteSync(Int32 bytesRead)
   위치: System.Net.Http.StreamToStreamCopy.BufferReadCallback(IAsyncResult ar)<---

와 같은 로그기록이 남아있는 걸 확인할 수 있었습니다.

잘 이해가 안가네요..;

혹시나 해서 업로드되는 비디오의 사이즈를 체크해봐도 별 차이는 없습니다
(231kb, 228k)

왜 이런지 감이 잡히지 않습니다
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호