Podaję pliki .JSON, ale mimo że plik istnieje, IIS zgłasza błąd 404 podczas uzyskiwania dostępu do dowolnego pliku. Próbowałem zmienić nazwę jednego z plików na .JS i działa.
Jakiś wskaźnik, jakie ustawienie może powodować ten problem?
Podaję pliki .JSON, ale mimo że plik istnieje, IIS zgłasza błąd 404 podczas uzyskiwania dostępu do dowolnego pliku. Próbowałem zmienić nazwę jednego z plików na .JS i działa.
Jakiś wskaźnik, jakie ustawienie może powodować ten problem?
Odpowiedzi:
Domyślnie usługi IIS w wersji W2K3 i nowszych nie będą obsługiwać plików, które nie są znanymi typami MIME (zamiast zwracają błędy 404).
Musisz dodać typ MIME do IIS, aby umożliwić obsługę tego typu plików. Możesz ustawić to na poziomie witryny lub na poziomie serwera.
Aby ustawić to dla całego serwera:
Miałem ten sam problem. IIS robi coś, co nazywa się filtrowaniem typu MIME. Jeśli nie zna typu MIME określonego rozszerzenia pliku, zwraca błąd 404.
W usługach IIS <7: Otwórz właściwości witryny (lub serwera). Kliknij kartę Nagłówek HTTP . Kliknij przycisk Typy MIME . Dodaj typ pliku * z typem MIME „application / octet-stream”.
W przypadku IIS 7: Otwórz menedżera IIS. Kliknij serwer lub stronę internetową. Kliknij dwukrotnie ikonę funkcji Typy MIME . W okienku Akcje kliknij Dodaj . Wypełnij pole „File Name Extension” *, a pole MIME Type „application / octet-stream”.
Dodałem typ MIME .json
- text/json
do strony w IIS, aby wyświetlić w przeglądarce jako tekst.
Aby skonsolidować odpowiedzi w jedną ogólną odpowiedź:
Oto zastrzeżenie:
Jeśli masz tego rodzaju problem, otwórz pliki dziennika internetowego witryny i spójrz na kod podrzędny (tj. 404 3), aby dokładnie ustalić, dlaczego witryna nie wyświetla treści dla IIS 6 lub
w IIS 7.
Miałem też ten problem - i okazało się, że są to uprawnienia do plików w folderze, w którym przechowywany był plik json. Odpowiedziałem na podobne pytanie tutaj .
Wszyscy ci ludzie mają rację, mówiąc, że musisz dodać typ MIME.
Typ MIME umożliwia rozszerzenie pliku na serwerze, a moduł obsługi map mówi IIS, co z tym zrobić.
Musisz także dodać moduł obsługi map , a do tego musisz mieć zainstalowaną funkcję systemu Windows o nazwie Classic Asp , aby obsłużyć mapowanie.
Handler Mappings
Add a Script Map
*.json
C:\WINDOWS\system32\inetsrv\asp.dll
JSON
(możesz to nazwać jak chcesz)Ponadto niektórzy ludzie powiedzą ci, abyś używał `application / x-javascript 'jako aplikacji typu mime, ale JSON nie jest javascript, sam w sobie (jest to jednak podzbiór), więc powinien być zamiast tego„ application / json ” , ponieważ jest to typ nośnika zarejestrowany przez IANA dla JSON.
Sprawdź także Filtrowanie żądań w IIS. Jeśli plik „.json” jest dostępny i zablokowany, nic innego nie będzie działać.