ฉันจะเปิดใช้งานการดาวน์โหลดไฟล์ * .json จากไซต์ ASP.NET เก่าได้อย่างไร (IIS6 ฉันถูกทำให้เชื่อ)
ฉันได้รับหน้า 404 แทนที่จะเป็นไฟล์ JSON
ฉันต้องสร้างไฟล์ web.config หรือไม่ มันเกิดอะไรขึ้น?
ฉันจะเปิดใช้งานการดาวน์โหลดไฟล์ * .json จากไซต์ ASP.NET เก่าได้อย่างไร (IIS6 ฉันถูกทำให้เชื่อ)
ฉันได้รับหน้า 404 แทนที่จะเป็นไฟล์ JSON
ฉันต้องสร้างไฟล์ web.config หรือไม่ มันเกิดอะไรขึ้น?
คำตอบ:
เพิ่มประเภท JSON MIME กับ IIS 6. ทำตามคำแนะนำที่MSDN ของประเภทกำหนดค่า MIME (IIS 6.0)
อย่าลืมรีสตาร์ท IIS หลังจากการเปลี่ยนแปลง
อัปเดต: มีวิธีง่ายๆในการดำเนินการนี้บน IIS7 และใหม่กว่า หน่วยปฏิบัติการขอความช่วยเหลือ IIS6 โดยเฉพาะดังนั้นฉันจึงปล่อยให้คำตอบนี้ตามที่เป็นอยู่ แต่คำตอบนี้ยังคงได้รับการเข้าชมแม้ว่า IIS6 จะเก่ามากแล้วก็ตาม หวังว่าคุณจะใช้สิ่งที่ใหม่กว่าดังนั้นฉันอยากจะพูดถึงว่าหากคุณมี IIS7 ที่ใหม่กว่าหรือใหม่กว่าโปรดดูคำตอบของ @ ProVega ด้านล่างเพื่อเป็นวิธีที่ง่ายกว่าสำหรับเวอร์ชันที่ใหม่กว่า
.ASPX
. อีกครั้งการเปลี่ยนไปใช้เซิร์ฟเวอร์ด้วย IIS7 มีวิธีแก้ปัญหาที่ง่ายและหลากหลายมากขึ้น
หากคุณต้องการเพิ่มการสนับสนุนให้กับไซต์ของคุณด้วยตนเองคุณสามารถเพิ่มสิ่งต่อไปนี้ใน web.config ของคุณในส่วนsystem.webServer :
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
สิ่งนี้จะเพิ่มการกำหนดค่า "ภายใน" ภายใต้ IIS สิ่งนี้ใช้ไม่ได้ใน IIS6 แต่ทำงานใน IIS7 และใหม่กว่า
web.config
เส้นทางแบบเต็ม
Cannot add duplicate collection entry of type 'mimeMap' with unique key attribute 'fileExtension' set to '.csv'
เมื่อฉันลบรายการที่ซ้ำกันแล้วก็ไม่มีปัญหา
ไปที่ IIS เลือกแอปพลิเคชันของคุณและค้นหาประเภท MIME
คลิกที่เพิ่มจากแผงด้านขวา
นามสกุลไฟล์ = .json
ประเภท MIME = application / json
หลังจากเพิ่มประเภทไฟล์. jsonในประเภท MIMEให้รีสตาร์ท IISและพยายามเข้าถึงไฟล์ json
ไปที่ web.config ของแอปพลิเคชันนั้นแล้วเพิ่มบรรทัดนี้เข้าไป
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
เมื่อเพิ่มการสนับสนุนสำหรับ mimetype (ตามที่แนะนำโดย @ProVega) แนวทางปฏิบัติที่ดีที่สุดคือการลบประเภทออกก่อนที่จะเพิ่ม - เพื่อป้องกันข้อผิดพลาดที่ไม่คาดคิดเมื่อปรับใช้กับเซิร์ฟเวอร์ที่มีการรองรับประเภทอยู่แล้วเช่น:
<staticContent>
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
C:\Windows\System32\inetsrv\config
: applicationHost.config
เพิ่งมีปัญหานี้ แต่ต้องหา config สำหรับ IIS Express ดังนั้นฉันจึงสามารถเพิ่มประเภท mime ได้ สำหรับฉันมันอยู่ที่C:\Users\<username>\Documents\IISExpress\config\applicationhost.config
และฉันสามารถเพิ่ม "แผนที่ละครใบ้" ที่ถูกต้องได้ที่นั่น
<mimeMap>
<remove fileExtension=".json" />
คุณไม่ควรแตะ applicationhost.config (หรือ machine.config) ดังที่กล่าวไว้การแก้ไขไฟล์เหล่านั้นอาจมีประโยชน์หากคุณสร้างไซต์ใหม่บ่อยๆและไม่ต้องการแก้ไข web.config สำหรับแต่ละไซต์ ซึ่งอาจใช้ได้กับสภาพแวดล้อม dev แต่บ่อยครั้งที่คุณไม่สามารถสัมผัส machine.config ในสภาพแวดล้อมการผลิตได้ดังนั้นฉันยังคงแนะนำให้ทำการเปลี่ยนแปลงใน web.config
remove
กุญแจสำคัญสำหรับฉัน