IIS7 gibt leer zurück, wenn statischer Inhalt angefordert wird


14

Ich versuche, einen Demo-Computer zu konfigurieren, auf dem EEEPC mit Windows 7 Home Premium Edition und alle Treiber mit IIS7 installiert sind (fragen Sie mich nicht, warum es sich um Home Edition handelt).

Ich habe die Anwendung bereitgestellt, um sie auf dem Computer zu testen. Hierbei handelt es sich um eine ASP.NET MVC-Site. Die Website wurde über die Konsole hinzugefügt und ein App-Pool wurde hinzugefügt. Der App-Pool wird als NetworkService ausgeführt und der Gast authentifiziert sich als IUSR.

Ich habe Änderungsrechte für NetworkService hinzugefügt und Lese- und Ausführungsrechte für IUSR für den Ordner und den Inhalt der Website.

Wenn ich das Stammverzeichnis des Webs betrete , z. B. http://example.com/, wird von der Website ein ordnungsgemäßer HTML-Code gerendert (was bedeutet, dass die Anwendung funktioniert). Das Problem besteht jedoch darin, dass der gesamte statische Inhalt leer bleibt.

Ich bin nicht sicher, warum das passiert. Keine 404- oder 500-Fehlerseite, nur leere Antwort, wenn ich auf statischen Inhalt zugreife. Alle von ASP.NET generierten Inhalte funktionieren einwandfrei (wenn auch etwas seltsam, da nicht alle CSS und Bilder geladen werden).

Bitte helfen Sie, die IIS7-Verwaltungskonsole ist für mich sehr verwirrend und ich benötige den Computer bis morgen.

Antworten:



2

In meinem Fall war die Serverrolle bereits installiert, und der statische Handler stellte leere Seiten auch für eine einfache Testwebsite mit nur einer Handlerzuordnung bereit.

Das Update bestand darin, die Anforderungseinschränkung "Handler nur aufrufen, wenn Anforderung zugeordnet ist" zu aktivieren. Es spielt keine Rolle, ob ich es auf "Datei" oder "Datei oder Verzeichnis" stelle; Solange das Kontrollkästchen aktiviert ist, funktioniert es:

                  Bildbeschreibung hier eingeben

Wenn dies immer noch nicht hilft, versucht eine andere Sache, die zu leeren Seiten führt, einen Pfad im Abschnitt "Anforderungspfad" anzugeben, wie publicoder vielleicht public/*. Letzteres ist einfach falsch, während Ersteres akzeptiert werden sollte, sondern zu leeren Seiten führt. Die Lösung besteht darin, die Handlerzuordnung in einen <location path='public'>Abschnitt zu verpacken und die *Einstellung "Anforderungspfad" anzugeben . Oder erweitern Sie im IIS-Manager die Site, wählen Sie zuerst Ihren Ordner aus und bearbeiten Sie dann die Handlerzuordnungen.


1

Wie @MattB vorschlug, hatte ich die Funktion "Statischer Inhalt" nicht aktiviert, aber das ist nur ein Teil des Problems.

Ich habe die Funktion "Statischer Inhalt" hinzugefügt und das Problem besteht weiterhin. Daher entferne ich den Standard - MvcHttpHandler aus der Liste der Handlerzuordnungen und löse das Problem auf irgendeine Weise selbst StaticFileHandler,

Stellen Sie nach der Installation des "Statischen Inhalts" außerdem sicher, dass ...

  1. Klicken Sie im Internetinformationsdienste-Manager auf Ihre Website.
  2. Doppelklicken Sie auf die Funktion "Handlerzuordnungen".
  3. Auf der rechten Seite (im Aktionsbereich) sehen Sie einen Link mit dem Titel "Bestellte Liste anzeigen ...". Klicken Sie darauf.
  4. Sie finden dann die Reihenfolge, in der die Module auf die einzelnen Anforderungen abgestimmt sind. Stellen Sie sicher, dass die Reihenfolge sinnvoll ist.

In meinem Fall war MvcHttpHandler über alles und ich habe das Problem gelöst, indem ich es an den unteren Rand der Liste verschoben habe. Dies ist der sinnvollste Ort, an dem es sich befinden sollte, da AXD-Dateihandler, TRACE-Handler, OPTIONS-Handler und statische Inhalte eine Chance haben bei der Bearbeitung der Anfrage zuerst.

Hoffe, das hilft jemandem beim googeln für das gleiche Problem :-)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.