2013-09-23 1 views
1

이상하게 행동하는 ASP.NET MVC 3 웹 앱이 있습니다. ("안녕하세요"내용으로, "test_file.txt")ASP.NET FileContentResult 항상 생산중인 404

이 더 문제가 작동하지 않습니다 디버그 모드에서
[HttpGet] 
    public ActionResult Download() 
    { 
     var cd = new System.Net.Mime.ContentDisposition 
      { 
       FileName = "test_file.txt", 
       Inline = false, 
      }; 

     Response.AppendHeader("Content-Disposition", cd.ToString()); 
     return File(System.Text.Encoding.Unicode.GetBytes("HELLO THERE"), "text/plain"); 
    } 

, 나는 예상대로 파일 다운로드를 얻을 : 나를 테스트 파일을 다운로드 할 수있는 조치가있다.

IIS 6을 사용하여 게시하고 배포하면 항상 404 오류가 반환됩니다. 누구나 왜 차이점을 어떻게 해결할 수 있는지 알고 있습니까?

+1

다른 작업이 예상대로 작동합니까? 문제는 코드가 아니라 IIS 및 응용 프로그램 구성과 관련 될 수 있습니다. 예를 들어 대상 서버가 MVC 응용 프로그램을 지원합니까? –

+0

답장을 보내 주셔서 감사합니다. 어제 밤 문제가 실현되었습니다. 아래 답변 해 드리겠습니다! –

답변

1

라우팅과 IIS 구성의 조합이 문제였습니다. 액션에 대한 매개 변수가 있는데, 그 중 하나에는 파일 확장자가 포함되어 있습니다. 매개 변수가 파일 시스템에서 파일에 액세스하려고으로이 글을 읽고 있었다

../Download?[text].txt 

IIS의

../Download/[text].txt 

대신 형식에 있었다 그래서 나는 경로를 설정했다. 맞춤 경로를 삭제했으며 모두 해결되었습니다.

+0

이것은 자바 스크립트에서 내 바보 하드 코딩 된 URL을 발견하게 만들었습니다. 프로덕션 환경에 적용 할 때 상대 경로가 없음을 의미합니다. 감사 – Ian