2016-07-07 2 views
1

아래 코드는 새 MVC 프로젝트에서 매우 단순화 된 테스트 동작입니다. 이 작업은 test이라는 단어가 포함 된 간단한 텍스트 파일을 반환하기위한 것입니다.ASP.net MVC 파일 내용 길이

public ActionResult FileTest() 
{ 
    return File(System.Text.Encoding.UTF8.GetBytes("test"), "text/plain", "test.txt"); 
} 

서버에서 HTTP 응답을 볼 때 내가 대신 나는 Content-Length: 122

가 가 가

가 크롬과 IE는 숫자 절 Content-Length의 미스 매치에 대처 완벽 할 것 같다 참조 Content-Length: 4와 헤더를 볼 것으로 예상 것 실제로 반환 된 바이트 수입니다. 그러나 Firefox (v47)는 다운로드 한 122 바이트 중 4 바이트를 무기한 다운로드하지 못합니다.

내 질문은 : 내가 잘못하고있는 것을 목격하고있는 동작입니까, 아니면 프레임 워크의 결함입니까? 둘째,이 문제를 해결하기 위해 내가 할 수있는 일은 무엇입니까?

답변

0

코드를 교차 검사하고 FireFox v47에서 제대로 작동하는 것 같습니다.

파일 반환을 위해 반환 유형을 "ActionResult"에서 "FileResult"로 변경하는 것이 좋습니다. 이로 인해 문제가 해결 될 수 있습니다. 당신이 여전히 똑같은 문제에 직면 해 있다면 알려줘.

+0

의견을 보내 주셔서 감사합니다. 그러나 FileResult로 변경해도 아무런 변화가 없습니다. 테스트에 관심이 없으면 Content-Length 헤더는 무엇으로 반환됩니까? –

+0

콘텐츠 길이는 122이지만 Firefox는 여전히 텍스트 파일을 다운로드하고 열었습니다. – Mahendra

+0

방금 ​​Firefox를 v47.0.1로 업데이트했고 문제가 해결되었습니다. 나는 그 동작을 설명 할 릴리스 노트와 관련된 것을 볼 수 없다. MVC가 잘못된 Content-Length 헤더를 반환하는 이유를 이해하는 데 계속 관심이 있습니다. –