IIS kann bestimmte Dateierweiterungen nicht bereitstellen

IIS kann bestimmte Dateierweiterungen nicht bereitstellen

Ich stelle .JSON-Dateien bereit, aber obwohl die Datei existiert, gibt IIS immer wieder einen 404-Fehler aus, wenn auf eine der Dateien zugegriffen wird. Ich habe versucht, eine der Dateien in .JS umzubenennen, und es funktioniert.

Irgendein Hinweis darauf, welche Einstellung dieses Problem verursachen kann?

Antwort1

Standardmäßig stellt IIS in W2K3 und höher keine Dateien bereit, deren MIME-Typ nicht bekannt ist (stattdessen werden 404-Fehler zurückgegeben).

Sie müssen IIS einen MIME-Typ hinzufügen, damit dieser Dateityp bereitgestellt werden kann. Sie können ihn auf Site- oder Serverebene festlegen.

So legen Sie dies für den gesamten Server fest:

  • Öffnen Sie die Eigenschaften für den Server im IIS-Manager und klicken Sie auf MIME-Typen
  • Klicken Sie auf „Neu“. Geben Sie als Erweiterung „JSON“ und als MIME-Typ „application/json“ ein.

Antwort2

Ich hatte das gleiche Problem. IIS führt etwas namens MIME-Typfilterung durch. Wenn es den MIME-Typ einer bestimmten Dateierweiterung nicht kennt, gibt es einen 404-Fehler zurück.

Unter IIS <7: Öffnen Sie die Site- (oder Server-)Eigenschaften. Klicken Sie auf dasHTTP-HeaderKlicken Sie auf dieMIME-TypenSchaltfläche. Fügen Sie den Dateityp * mit dem MIME-Typ „application/octet-stream“ hinzu.

Für IIS 7: Öffnen Sie den IIS-Manager. Klicken Sie aufServeroder Website. Doppelklicken Sie auf dieMIME-TypenFeaturesymbol. Klicken Sie im Aktionsbereich aufHinzufügen. Füllen Sie das Feld „Dateinamenerweiterung“ mit * und das Feld „MIME-Typ“ mit „application/octet-stream“.

Antwort3

Ich habe der Site in IIS den MIME-Typ .json- hinzugefügt, um ihn im Browser als Text anzuzeigen.text/json

Antwort4

Ich hatte dieses Problem auch - und es stellte sich heraus, dass das Problem die Dateiberechtigungen für den Ordner waren, in dem die JSON-Datei gespeichert war. Ich antwortete aufähnliche Frage hier.

Diese Leute haben alle Recht, wenn sie sagen, dass Sie den MIME-Typ hinzufügen müssen.

Der MIME-Typ aktiviert die Dateierweiterung auf dem Server und der Mapping-Handler teilt IIS mit, was damit zu tun ist.

Man muss also auchFügen Sie den Mapping-Handler hinzu, und dafür benötigen Sie die Windows-Funktion namensClassic Asp installiertum die Zuordnung zu handhaben.

So fügen Sie den Mapping-Handler hinzu:

  1. Öffnen Sie den IIS7-Manager
  2. Gehen Sie zu den Eigenschaften des IIS-Servers (oder nur der Site, wenn Sie keine globale Einstellung wünschen).
  3. Klicke aufHandler Mappings
  4. Klicke aufAdd a Script Map
  5. Geben Sie die Eigenschaften ein:
    • Anforderungspfad:*.json
    • Ausführbar:C:\WINDOWS\system32\inetsrv\asp.dll
    • Name: JSON(Sie können es nennen, wie Sie möchten)
  6. Klicken Sie auf „OK“, und Sie sind fertig. Es sollte nun funktionieren und Sie müssen IIS nicht zurücksetzen.

Außerdem werden einige Leute Ihnen sagen, Sie sollten `application/x-javascript' als MIME-Typ der Anwendung verwenden, aber JSON ist nicht Javascript,an sich(EsIsteine Teilmenge jedoch) und daher sollte es stattdessen „application/json“ sein, da es der bei der IANA registrierte Medientyp für JSON ist.

verwandte Informationen