IIS unterstützt bestimmte Dateierweiterungen nicht

IIS unterstützt bestimmte Dateierweiterungen nicht

ich habe dieses seltsame Problem auf dem Win 2k3-Server und IIS:

Iis hat mehrere Sites, in einer davon muss ich ein Unterverzeichnis erstellen und es als Webanwendung einrichten. Mir ist aufgefallen, dass wenn ich ein neues Verzeichnis erstelle und einige .js/.txt-Dateien darin ablege, diese nicht von Iis bereitgestellt werden (IE gibt einen Fehler aus, Internet Explorer kann die Webseite nicht anzeigen).

Wenn ich dieselben Dateien in ein Unterverzeichnis einer anderen alten Site lege, werden sie korrekt angezeigt.

Durch das Schnüffeln des Datenverkehrs habe ich gesehen, dass IIS-Antwortverbindungsstatus 200 ist und dann jede Verbindung vollständig bricht

http://domain.com/test2/prova.txt

GET /test2/prova.txt HTTP/1.1
Host: domain.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

HTTP/1.x 200 OK

Wenn ich die Datei beispielsweise prova.txt in prova.asp umbenenne, wird sie ohne Probleme angezeigt, es sollte also kein Berechtigungsproblem sein.

Nach einigen Recherchen habe ich herausgefunden, dass es an fehlenden MIME-Typen liegen kann. Ich habe überprüft, ob .txt und .js vorhanden sind und von aspnet_isapi.dll bereitgestellt werden. Und hier kommt noch etwas Merkwürdiges: Wenn ich die MIME-Zuordnung aus den Eigenschaften des Verzeichnisses entferne, wird es korrekt bereitgestellt, aber dasselbe funktioniert nicht mit JS.

Mir gehen langsam wirklich die Ideen aus. Hat jemand einen Tipp?

Dank im Voraus.

Antwort1

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“.

Dasselbe können Sie auch in Ihrer web.config-Datei tun, wenn Sie eine .NET-Anwendung erstellen.

Antwort2

Da Sie diese Erweiterungen aspnet_isapi.dll zugeordnet haben, müssen Sie ASP.NET nun anweisen, sie zu verarbeiten. Den IIS-Teil haben Sie richtig gemacht.

Es handelt sich um eine PageHandlerFactory, die Sie in Ihren httpHandlern festlegen müssen. Ich habe diese Seite gefunden, die das ausführlich behandelt:http://aspnet.4guysfromrolla.com/articles/011404-1.aspx.

verwandte Informationen