IIS 7.5 lädt keine statischen HTML-Seiten

10

Auf einem dedizierten Server ist IIS 7.5 frisch installiert. ASP.NET 4.0-Webanwendung in ihren Ordner kopiert, neue Website wird nach Post 80 unter eigener IP erstellt, IIS_IUSR- und IUSR-Konten haben Lese- / Ausführungsrechte für den Ordner der Site, die Site wird mit 4.0 .NET einem eigenen integrierten App-Pool zugewiesen (Ich habe Classic Pool mit den gleichen Ergebnissen ausprobiert).

Das Problem: Wenn ich versuche, auf diese Website zuzugreifen, lädt der Browser nur Inhalte, die von .NET-Ressourcen wie Aspx-Seiten, Axd-Dateien usw. generiert wurden. Statische Bilder, statische JS-, CSS- und HTML-Dateien befinden sich in der Seitenquelle, IIS jedoch nicht diene ihnen nicht. Entwicklungswerkzeuge in allen Browsern beschweren sich, dass alle diese statischen Ressourcen vom Server mit falschem Inhaltstyp (einfacher Text anstelle von Bild, Stilen usw.) gesendet wurden. Was mache ich falsch?

Kizz
quelle
Was sehen Sie in Fiddler (oder Firebug)?
SLaks
Wenn dies möglich ist, führen Sie die Seite auf dem Server aus. Führen Sie insbesondere den statischen Inhalt auf dem Server aus, und Sie erhalten einen vollständig detaillierten Fehlerbericht.
Aristos
Ich benutze Firebug nicht. Chrome beschwert sich jedoch beispielsweise über eine JPG-Datei auf der Seite, dass "Ressource als Bild interpretiert, aber mit Text / Plain vom Typ MIME übertragen" wird. Gleiches gilt für alle Stile, JS- und statischen HTML-Seiten. Außerdem funktioniert das dynamische Laden von Skripten und HTML nicht.
@ Aristos: Das habe ich gemacht. Der Browser des Servers rendert die Seite genauso wie die externen Browser. Keine Fehler, nur unvollständige Seite.
Hat der Benutzer, der den Webserver ausführt, das Recht, diese Dateien zu lesen?
Luc M

Antworten:

12

IIS 7 / 7.5 verfügt über eine neue "Funktion" - Rollendienste. Der Beitrag von rsbarro erinnerte mich daran, dass es einen Rollendienst gibt, der für statische Inhalte verantwortlich ist. Es ist Webserver / Allgemeine HTTP-Funktionen / Statischer Inhalt. Überprüfen Sie, ob das Symbol MIME-Typen im IIS-Manager vorhanden ist, wie von rsbarro vorgeschlagen.

Sie müssen den Rollendienst "Statischer Inhalt" installieren, wenn dies nicht der Fall ist. Wählen Sie dazu Folgendes aus:

  • Server Administrator
  • Rollen
  • IIS-Knoten (Web Server) im linken Bereich
  • Scrollen Sie zum Fenster Rollendienste
  • Überprüfen Sie, ob der Rollendienst "Statischer Inhalt" installiert ist.

Nach dem, was Sie beschreiben, scheint dies Ihr Problem zu sein.

Wenn IIS7 nichts tut, was IIS6 getan hat, müssen Sie im Allgemeinen zunächst prüfen, ob der entsprechende Rollendienst installiert ist. Hoffe das hilft.

Vlad
quelle
Statische Inhaltsrolle, wie habe ich das vermisst? Danke, das Problem wurde perfekt behoben.
David Thomas Garcia
6

Gehen Sie unter IIS zu Ihrer Website und überprüfen Sie den Abschnitt MIME-Typen (siehe Abbildung unten). Stellen Sie sicher, dass in dieser Liste Einträge für .js, .css, .html usw. angezeigt werden und dass für sie der richtige MIME-Typ angegeben ist. IIS 7.5 stellt nur Seiten bereit, wenn ein MIME-Typ angegeben ist. Standardmäßig werden die MIME-Typen für diese Erweiterungen in der applicationHost.configDatei im C:\Windows\system32\inetsrv\configOrdner eingerichtet (möglicherweise müssen Sie den Editor als Administrator ausführen, um die Datei anzuzeigen). Suchen Sie einfach nach .js und Sie sollten einen Eintrag unter <mimeMap>im <staticContent>Element finden.

Dies sind Pantomimen

Diese Einstellungen können in Ihrer web.configDatei überschrieben werden. Wenn dies der Fall ist, werden sie an der folgenden Stelle im angezeigt web.config:

<system.webServer>
    <staticContent>
        <remove fileExtension=".js" />
    </staticContent>
</system.webServer>

Ich würde auf jeden Fall dort anfangen. Wenn im Abschnitt MIME-Typen alles in Ordnung aussieht, haben Sie möglicherweise ein Modul, das die Anforderungen für statische Dateien stört (aber höchstwahrscheinlich nur, wenn Sie <modules runAllManagedModulesForAllRequests="true" />in Ihrem <system.webServer>Abschnitt festgelegt haben). Wenn dies der Fall ist, würde ich alle in Ihrem Setup eingerichteten Module entfernen web.configund prüfen, ob Sie die statischen Dateien aufrufen können, und sie dann einzeln lesen, um festzustellen, welches Modul das Problem verursacht. Wenn Sie es nicht herausfinden können, würde ich vorschlagen, den Inhalt Ihrer web.config(oder zumindest der system.webund system.webServerAbschnitte) in der Frage zu veröffentlichen.

rsbarro
quelle
2

Ich hatte das gleiche Problem, aber mein App-Pool wurde unter einem Domänenkonto ausgeführt und dieser Benutzer hatte Rechte für den Website-Ordner. Meine Website hat Aspx gerendert, aber keinen statischen Inhalt. Mein Problem wurde behoben, indem die Gruppe IIS_IUSRS zur lokalen Sicherheitsrichtlinie "Identitätswechsel eines Clients nach Authentifizierung" hinzugefügt wurde. In der Gruppe IIS_IUSRS befand sich mein Domänenkonto. Ich verwende iis 7.5 Windows 2008 Server.

Teilzeitpunkt
quelle
Ich wünschte, ich könnte mehr als einmal abstimmen. Ich bin auf diese Frage gekommen, als ich gesucht habe, warum meine CSS-Dateien nicht von IIS bereitgestellt wurden. Es bezog sich auf Windows-Berechtigungen für die Ordner, in denen sie gespeichert waren.
2b77bee6-5445-4c77-b1eb-4df3e5