4 Stimmen

Statischer Inhalt in ASP.NET MVC in IIS 7

Ich habe eine ASP.NET MVC 1.0 Anwendung (.NET 3.5), die auf II7 und Windows 2008 Server läuft. Die Anwendung wird im Modus "Integrierte Pipeline" bereitgestellt.

In Global.asax.cs habe ich hinzugefügt:

public void Application_EndRequest(Object sender, EventArgs e) {
//print URL
}

Die Methode wird auch für statische Inhalte (Bilder, CSS, JS) in den Ordnern /Content und /Scripts aufgerufen. Ist dies richtig?

MSDN ( http://msdn.microsoft.com/en-us/library/bb470252.aspx ) sagt:

"The Execute handler stage, where the handler (a module scoped to a URL) is invoked to construct the response. For .aspx files, the PageHandlerFactory handler is used to respond to the request. 
For static files, the native-code StaticFileModule module responds to the request. "

Sollte Application_EndRequest() also für statische Inhalte aufgerufen werden?

Wie kann man sicherstellen, dass der Browser statische Inhalte zwischenspeichert?

Ich danke Ihnen.

1voto

ZippyV Punkte 12030

Aufgrund der in MVC eingeführten Routing-Funktionalität wird nun alles über ASP.NET abgewickelt, so dass Application_EndRequest für jede Anfrage aufgerufen wird. Ein Browser kann nicht zwischen statischem und dynamischem Inhalt unterscheiden und wird versuchen, den Inhalt wenn möglich und abhängig von den HTTP-Headern zwischenzuspeichern.

1voto

Ray Vernagus Punkte 6070

Obwohl es von der ASP MVC-Standardvorlage nicht empfohlen wird, denke ich, dass es zu einer empfohlenen Praxis wird, den gesamten statischen Inhalt Ihrer Website in einem einzigen Verzeichnis abzulegen. Sie können dann die ASP-Pipeline für das besagte Verzeichnis deaktivieren und es IIS ermöglichen, den Inhalt bereitzustellen, ohne die Anfrage an ASP.NET weiterzuleiten.

Über diese Praxis wurde geschrieben auf Steve Sanderson y Kazi Manzur Rashid's bloggt. Es wird auch empfohlen in ASP.NET MVC in Aktion .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X