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?
Antworten:
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:
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.
quelle
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.config
Datei imC:\Windows\system32\inetsrv\config
Ordner 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.Diese Einstellungen können in Ihrer
web.config
Datei überschrieben werden. Wenn dies der Fall ist, werden sie an der folgenden Stelle im angezeigtweb.config
: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 entfernenweb.config
und 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 Ihrerweb.config
(oder zumindest dersystem.web
undsystem.webServer
Abschnitte) in der Frage zu veröffentlichen.quelle
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.
quelle