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.