Do użytku w javascript lub do zapisywania na dysku twardym?
Remy
Chcę uzyskać do niego dostęp przez jQuery.ajax (adres URL: ...
Lea Hayes
2
Dodanie tego po tym, jak lokalne usługi IIS mają listę, przy następnym wdrożeniu może spowodować wyświetlenie błędu serwera 500 ze zduplikowanej listy, więc należy go skomentować.
Nie zapomnij o ponownym uruchomieniu usług IIS po zmianie.
AKTUALIZACJA: W usługach IIS7 i nowszych można to łatwo zrobić. Operator specjalnie poprosił o pomoc w usługach IIS6, więc pozostawiam tę odpowiedź bez zmian. Ale ta odpowiedź wciąż generuje duży ruch, mimo że usługi IIS6 są teraz bardzo stare. Mam nadzieję, że używasz czegoś nowszego, więc chciałem wspomnieć, że jeśli masz nowszą wersję IIS7 lub nowszą, zobacz odpowiedź @ ProVega poniżej, aby uzyskać prostsze rozwiązanie dla tych nowszych wersji.
Pozdrawiam, ale to jest na współdzielonym pakiecie hostingowym bez dostępu do niczego innego niż web.config lub globalny plik kodu
Lea Hayes
Jeśli nie masz dostępu do ustawień usług IIS 6.0, a pomoc techniczna Twojego dostawcy nie doda typu MIME za Ciebie, będziesz musiał zmienić dostawców lub na nowsze serwery z usługami IIS 7.0 u tego dostawcy, jeśli to oferują, aby wesprzyj to.
Jon Adams
1
Tak, ASP.Net może przekazać plik za pośrednictwem modułu obsługi ASPX lub nawet prostej strony, ale nie będzie można użyć typu pliku .json w adresie URL, ponieważ nie przekaże tego żądania do ASP.Net runtime. Musi to być coś, co przechodzi przez środowisko wykonawcze ASPX. Jeśli nie masz dostępu do ustawień usług IIS, będzie to musiało być jedno z istniejących rozszerzeń, takich jak .ASPX. Ponownie przejście na serwer z usługami IIS7 oferuje znacznie więcej i łatwiejszych rozwiązań.
Jon Adams
1
Ponowne uruchomienie puli aplikacji powinno wystarczyć (tak było w moim przypadku) zamiast całkowitego ponownego uruchamiania usług IIS.
kltft
1
@kltft Prawda, ponowne uruchomienie puli aplikacji wyzwoli aktualizację, ale oczywiście tylko dla tej puli. Kroki te obejmują zmianę ustawień dla wszystkich, a ustawienie ich na niespójnym poziomie ustawień mogłoby później łatwo doprowadzić do zamieszania. Zalecam ponowne uruchomienie całego procesu iis dla bezpieczeństwa i zdrowia psychicznego. Ale w mgnieniu oka, jeśli wszyscy zgodzą się na zalety / wady, ponowne uruchomienie puli aplikacji może zadziałać.
Jon Adams
211
Jeśli chcesz ręcznie dodać obsługę do swojej witryny, możesz po prostu dodać następujące elementy do swojego pliku web.config w sekcji system.webServer :
Zaktualizowałeś odpowiedź, aby zawierała pełną web.configścieżkę.
GFoley83
Oszczędzanie życia, dziękuję :)
Gaurav123
1
Z jakiegoś powodu zepsuło to całą moją witrynę - css już nie działa!
TheJeff
@TheJeff - to mi się przydarzyło, ale to dlatego, że dodałem dwie staticContent mimeMap, jedną dla JSON (konieczne) i jedną dla CSV (zbędne, zakładałem, że to konieczne, ale applicationConfig IISExpress miał już CSV). Dlatego otrzymałem ten błąd za każdym razem, gdy próbowałem uzyskać dostęp do dowolnego pliku statycznego: Cannot add duplicate collection entry of type 'mimeMap' with unique key attribute 'fileExtension' set to '.csv' Po usunięciu duplikatu nie ma problemu.
The Red Pea
1
To rozwiąże problem podczas uruchamiania lokalnego, ale zachowaj ostrożność podczas przesyłania na żywo. Jeśli mapa mimeMap jest już skonfigurowana globalnie w usługach IIS, otrzymasz 500 błędów. W takim przypadku po prostu usuń ten element z pliku web.config.
Evan,
20
Rozwiązanie polega na tym, że musisz dodać typ rozszerzenia pliku json w typach MIME
Metoda 1
Przejdź do IIS, wybierz swoją aplikację i znajdź typy MIME
Kliknij Dodaj z prawego panelu
Rozszerzenie nazwy pliku = .json
Typ MIME = application / json
Po dodaniu .json typ pliku w typów MIME , Restart IIS i próby uzyskania dostępu do pliku json
Metoda 2
Przejdź do web.config tej aplikacji i dodaj do niej te linie
Dodając obsługę typu MIME (zgodnie z sugestią @ProVega), najlepiej jest również usunąć typ przed dodaniem - ma to zapobiec nieoczekiwanym błędom podczas wdrażania na serwerach, na których obsługa tego typu już istnieje, na przykład:
Kiedy dodajesz tylko mimeMap, czasami usuwa to twoje style css, więc właściwym sposobem jest usunięcie go najpierw, wielkie dzięki
sgrysoft
Ścieżka do pliku konfiguracyjnego w pliku IIS7 C:\Windows\System32\inetsrv\config: applicationHost.config
OO
5
Właśnie miałem ten problem, ale musiałem znaleźć konfigurację dla IIS Express, aby dodać typy MIME. Dla mnie znajdowała się pod adresem C:\Users\<username>\Documents\IISExpress\config\applicationhost.configi mogłem tam dodać poprawną „mapę mime”.
Być może dlatego nie działa dla mnie za pośrednictwem IIS Express. Niestety nie jest to coś, co chciałbym konfigurować na każdej maszynie deweloperskiej, więc wygląda na to, że zalecam pozostanie przy rozszerzeniu .js dla plików konfiguracyjnych json.
@SimchaKhabinsky Dla mnie web.config nie był wystarczający.
Jean-Bernard Pellerin
3
Jeśli web.config nie wystarczy, może trzeba dodać tę linię przed <mimeMap>węzłem: <remove fileExtension=".json" />. Nie powinieneś musieć dotykać pliku applicationhost.config (lub machine.config). Biorąc to pod uwagę, modyfikowanie tych plików może być przydatne, jeśli często tworzysz nowe witryny i nie chcesz modyfikować pliku web.config dla każdej witryny. To może działać w środowiskach deweloperskich, ale często nie możesz dotknąć pliku machine.config w środowiskach produkcyjnych, więc nadal zalecałbym wprowadzenie zmiany w pliku web.config.
gilly3
1
Dzięki @ gilly3 - removeklucz był dla mnie kluczem
Odpowiedzi:
Dodaj typ JSON MIME do usług IIS 6. Postępuj zgodnie z instrukcjami podanymi w sekcji Konfigurowanie typów MIME (IIS 6.0) witryny MSDN .
Nie zapomnij o ponownym uruchomieniu usług IIS po zmianie.
AKTUALIZACJA: W usługach IIS7 i nowszych można to łatwo zrobić. Operator specjalnie poprosił o pomoc w usługach IIS6, więc pozostawiam tę odpowiedź bez zmian. Ale ta odpowiedź wciąż generuje duży ruch, mimo że usługi IIS6 są teraz bardzo stare. Mam nadzieję, że używasz czegoś nowszego, więc chciałem wspomnieć, że jeśli masz nowszą wersję IIS7 lub nowszą, zobacz odpowiedź @ ProVega poniżej, aby uzyskać prostsze rozwiązanie dla tych nowszych wersji.
źródło
.ASPX
. Ponownie przejście na serwer z usługami IIS7 oferuje znacznie więcej i łatwiejszych rozwiązań.Jeśli chcesz ręcznie dodać obsługę do swojej witryny, możesz po prostu dodać następujące elementy do swojego pliku web.config w sekcji system.webServer :
Spowoduje to dodanie konfiguracji „lokalnej” w usługach IIS. To nie działa w usługach IIS6, ale działa w usługach IIS7 i nowszych.
źródło
web.config
ścieżkę.Cannot add duplicate collection entry of type 'mimeMap' with unique key attribute 'fileExtension' set to '.csv'
Po usunięciu duplikatu nie ma problemu.Rozwiązanie polega na tym, że musisz dodać typ rozszerzenia pliku json w typach MIME
Metoda 1
Przejdź do IIS, wybierz swoją aplikację i znajdź typy MIME
Kliknij Dodaj z prawego panelu
Rozszerzenie nazwy pliku = .json
Typ MIME = application / json
Po dodaniu .json typ pliku w typów MIME , Restart IIS i próby uzyskania dostępu do pliku json
Metoda 2
Przejdź do web.config tej aplikacji i dodaj do niej te linie
źródło
Dodając obsługę typu MIME (zgodnie z sugestią @ProVega), najlepiej jest również usunąć typ przed dodaniem - ma to zapobiec nieoczekiwanym błędom podczas wdrażania na serwerach, na których obsługa tego typu już istnieje, na przykład:
źródło
C:\Windows\System32\inetsrv\config
: applicationHost.configWłaśnie miałem ten problem, ale musiałem znaleźć konfigurację dla IIS Express, aby dodać typy MIME. Dla mnie znajdowała się pod adresem
C:\Users\<username>\Documents\IISExpress\config\applicationhost.config
i mogłem tam dodać poprawną „mapę mime”.źródło
<mimeMap>
węzłem:<remove fileExtension=".json" />
. Nie powinieneś musieć dotykać pliku applicationhost.config (lub machine.config). Biorąc to pod uwagę, modyfikowanie tych plików może być przydatne, jeśli często tworzysz nowe witryny i nie chcesz modyfikować pliku web.config dla każdej witryny. To może działać w środowiskach deweloperskich, ale często nie możesz dotknąć pliku machine.config w środowiskach produkcyjnych, więc nadal zalecałbym wprowadzenie zmiany w pliku web.config.remove
klucz był dla mnie kluczemźródło