ASP.NET으로 .json 파일 다운로드를 허용하는 방법


125

이전 ASP.NET 사이트 (IIS6)에서 * .json 파일을 다운로드하려면 어떻게해야합니까?

JSON 파일 대신 404 페이지가 표시됩니다.

web.config 파일을 만들어야합니까? 뭐가 들어 갑니까?


1
MIME 유형 을 추가 해야 할 수도 있습니다 .
— vcsjones 2011

1
자바 스크립트에서 사용하거나 HD에 저장하기 위해?
— Remy

나는 jQuery.ajax (URL을 통해 액세스 할 ...
— 레아 헤이즈

2
로컬 IIS에 목록이있는 후에 추가하면 다음 배포시 중복 목록에서 500 서버 오류가 발생할 수 있으므로 주석 처리합니다.
— Tom Mallard

답변:


118

IIS 6에 JSON MIME 유형을 추가합니다. MSDN의 MIME 유형 구성 (IIS 6.0)의 지침을 따릅니다 .

  • 확장자 : .json
  • MIME 유형 : application / json

변경 후 IIS를 다시 시작하는 것을 잊지 마십시오.

업데이트 : IIS7 이상에서이를 수행하는 쉬운 방법이 있습니다. op는 특별히 IIS6 도움을 요청했기 때문에이 대답을 그대로 두겠습니다. 그러나이 답변은 IIS6이 현재 매우 오래되었지만 여전히 많은 트래픽을 받고 있습니다. 더 새로운 것을 사용하고 있으므로 최신 IIS7 또는 최신 버전을 사용하는 경우 아래 @ProVega의 답변을 참조하여 최신 버전에 대한 더 간단한 솔루션을 참조하십시오.


1
건배하지만 이것은 web.config 또는 글로벌 코드 파일 이외의 다른 것에 액세스하지 않는 공유 호스팅 패키지에 있습니다
— Lea Hayes

IIS 6.0 설정에 대한 액세스 권한이없고 공급자의 지원이 MIME 유형을 추가하지 않는 경우 공급자를 전환하거나 해당 공급자가 제공하는 IIS 7.0이있는 최신 서버로 전환해야합니다. 이것을 지원하십시오.
— Jon Adams

1
예, ASP.Net은 ASPX 처리기 또는 간단한 페이지를 통해 파일을 전달할 수 있지만 해당 요청을 ASP.Net으로 전달하지 않으므로 URL에 .json 파일 형식을 사용할 수 없습니다. 실행 시간. ASPX 런타임을 통과하는 것이되어야합니다. IIS 설정에 액세스 할 수없는 경우 .NET Framework와 같은 기존 확장 중 하나 여야 .ASPX합니다. 다시 말하지만, IIS7을 사용하는 서버로 전환하면 훨씬 더 쉬운 솔루션이 제공됩니다.
— Jon Adams

1
IIS를 모두 다시 시작하는 것보다 앱 풀을 다시 시작하는 것으로 충분합니다 (제 경우에는 그랬습니다).
— kltft

1
@kltft 사실, apppool을 다시 시작하면 업데이트가 트리거되지만 물론 해당 풀에만 해당됩니다. 이러한 단계에는 모든 사람에 대한 설정 변경이 포함되며 일관성없는 수준의 설정을 유지하면 나중에 쉽게 혼란을 일으킬 수 있습니다. 안전과 온전함을 위해 전체 iis 프로세스를 다시 시작하는 것이 좋습니다. 그러나 모든 사람이 장단점에 동의하면 앱풀 재시작이 작동 할 수 있습니다.
— Jon Adams

211

사이트에 수동으로 지원을 추가하려면 system.webServer 섹션 의 web.config에 다음을 추가하면됩니다 .

<staticContent>
    <mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>

IIS 아래에 "로컬"구성이 추가됩니다. 이것은 IIS6에서는 작동하지 않지만 IIS7 이상에서는 작동합니다.


6
전체 web.config경로 를 포함하도록 답변을 업데이트했습니다 .
— GFoley83 2013-04-06

생명의 은인, 감사합니다 :)
— Gaurav123 2015-09-22

1
어떤 이유로, 이것은 내 전체 사이트를 엉망으로 만들었습니다. CSS는 더 이상 작동하지 않습니다!
— TheJeff 2015 년

@TheJeff-나에게 일어 났지만, 두 개의 staticContent mimeMap을 추가했기 때문입니다. 하나는 JSON (필수)이고 하나는 CSV (중복, 필요하다고 생각했지만 IISExpress applicationConfig에는 이미 CSV가 있음)입니다. 따라서 정적 파일에 액세스하려고 할 때마다이 오류가 발생했습니다. Cannot add duplicate collection entry of type 'mimeMap' with unique key attribute 'fileExtension' set to '.csv' 일단 중복을 제거하면 문제 없습니다.
— The Red Pea 2015

1
이렇게하면 로컬에서 실행할 때 문제가 해결되지만 라이브로 푸시 할 때는주의를 기울여야합니다. mimeMap이 이미 IIS에서 전역 적으로 구성된 경우 500 오류가 발생합니다. 이 경우 web.config에서이 부분을 제거하기 만하면됩니다.
— 에반

20

해결책은 MIME 유형에 json 파일 확장자 유형을 추가해야한다는 것입니다.

방법 1

IIS로 이동하여 애플리케이션을 선택하고 MIME 유형 찾기

여기에 이미지 설명 입력

오른쪽 패널에서 추가를 클릭하십시오.

파일 이름 확장자 = .json

MIME 유형 = application / json

여기에 이미지 설명 입력

추가 한 후 .json의 에서 파일 형식을 MIME 유형 , IIS를 다시 시작 및 액세스 JSON 파일에 시도


방법 2

해당 응용 프로그램의 web.config로 이동하여이 줄을 추가하십시오.

 <system.webServer>
   <staticContent>
     <mimeMap fileExtension=".json" mimeType="application/json" />
   </staticContent>
 </system.webServer>

15

mimetype에 대한 지원을 추가 할 때 (@ProVega에서 제안한대로) 유형을 추가하기 전에 제거하는 것이 좋습니다. 이는 유형에 대한 지원이 이미 존재하는 서버에 배포 할 때 예기치 않은 오류를 방지하기위한 것입니다. 예를 들면 다음과 같습니다.

<staticContent>
    <remove fileExtension=".json" />
    <mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>

당신 만의 MimeMap, 때때로 당신의 CSS 스타일을 제거를 추가 할 때, 그래서, 올바른 방법은 감사, 먼저 많이 제거입니다
— sgrysoft

IIS7 C:\Windows\System32\inetsrv\config파일의 구성 파일 경로 : applicationHost.config
— OO

5

이 문제가 있었지만 MIME 유형을 추가 할 수 있도록 IIS Express에 대한 구성을 찾아야했습니다. 나를 위해 그것은 위치에 C:\Users\<username>\Documents\IISExpress\config\applicationhost.config있었고 거기에 올바른 "마임 맵"을 추가 할 수있었습니다.


이것이 IIS Express를 통해 작동하지 않는 이유 일 수 있습니다. 불행히도 이것은 모든 개발 컴퓨터에서 구성해야하는 것이 아니므로 json 구성 파일에 .js 확장자를 사용하는 것이 좋습니다.
— jpierson 2014

Web.Config에서도 할 수 있습니다-이 답변을보십시오 stackoverflow.com/a/19517275/643761
— Simcha Khabinsky 2014

@SimchaKhabinsky 나에게 web.config로는 충분하지 않았습니다.
— Jean-Bernard Pellerin

3
web.config가 충분하지 않은 경우 <mimeMap>노드 앞에 다음 줄을 추가해야 할 수 있습니다 <remove fileExtension=".json" />.. applicationhost.config (또는 machine.config)를 건드릴 필요가 없습니다. 즉, 새 사이트를 자주 만들고 각 사이트에 대해 web.config를 수정할 필요가없는 경우 이러한 파일을 수정하는 것이 유용 할 수 있습니다. 개발 환경에서는 작동 할 수 있지만 프로덕션 환경에서는 machine.config를 만질 수없는 경우가 많으므로 web.config에서 변경하는 것이 좋습니다.
— gilly3

1
덕분에 gilly3 @ -은 remove이었다 나를 위해 키
— harriyott

0
  1. C : \ Users \ username \ Documents \ IISExpress \ config로 이동합니다.
  2. Visual Studio 또는 선호하는 텍스트 편집기로 applicationhost.config를 엽니 다.
  3. mimeMap이라는 단어를 검색하면 많은 것을 찾을 수 있습니다.
  4. 목록 맨 위에 다음 행을 추가하십시오..
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.