Gibt IIS 404 für ASP.NET MVC3-Datei (.cshtml)

Habe ich standard ASP.NET 4 Anwendung. In dieser Anwendung gibt es auch einige razor (z.B. test.cshtml) - Dateien. ASP.NET die Anwendung funktioniert jedoch wenn ich den Punkt browser /test Datei (ohne extension). IIS (static file handler) gibt 404 zurück.

Die gleiche Anwendung und auch die standalone - .cshtml Dateien, die auf lokalen Maschine (mit IIS7.5/Win7) und einem server (IIS7.5/Win2008R2), doch es funktioniert nicht, der server mit IIS7.0/Win2008.

MVC3 installiert ist auf beiden Maschinen, app pools auf beiden Maschinen .NET 4.0 integriert.

Wie die .cshtml Handler funktioniert? Wenn der IIS entscheidet sich für static file handler und wenn die .cshtml handler? Was sollte ich sonst noch überprüfen?

EDIT:

Klärung - ich bin nicht wirklich mit den ganzen MVC-framework, es ist nur, wie die plain-old .ASPX oder PHP-Datei. Keine Controller, keine Routen, keine 'Aussicht'. Ich benutze es für ein einfaches Skript, zusätzlich zu den alten ASP.NET -Anwendung.

Ich denke, es ist nicht ein Programmier-Problem, da es funktioniert auf dem lokalen computer, sondern eher ein Konfigurations-Problem - der IIS auf dem Win2008 server möglicherweise nicht ordnungsgemäß konfiguriert werden.

EDIT2:

(Maschinen mit IIS7.5 arbeiten, nur Maschine mit IIS7.0 funktioniert nicht. Aber ich bin mir nicht sicher, ob es ein problem des IIS-version.)

EDIT3:

Auf meinem lokalen Rechner, wo es funktioniert, habe ich nicht das routing. TheCodeKing und Keith schlug vor, dass ich brauchen, um eine routing-irgendwo. Vielleicht ja, aber es ist nicht in meiner Anwendung. Es kann festgelegt werden, standardmäßig irgendwo in der IIS-Konfiguration.

Haben Sie irgendwelche Hinweise, wo sich dieser 'impliziten' routing gefunden werden konnte?

EDIT4:

Hinweis: Auf allen Computern, es ist HttpForbiddenHandler für *.cshtml, da Sie nicht herunterladen können die cshtml-Datei. Und es gibt auch die TransferRequestHandler für *.. (Beide sind aktiviert.)

EDIT5:

Habe ich festgestellt, dass auf dem Server, wo es funktioniert, muss ich irgendwelche .cshtml - Datei im web-root. Wenn ich entfernen Sie die .cshtml aus dem web-root, und versuchen Sie, rufen Sie aus einem Unterverzeichnis funktioniert es nicht.

EDIT6:

Ich habe versucht, auf zwei weitere Maschinen: eine mit IIS 7.5 und ein weiteres mit IIS 7.0. Auf IIS 7.5 es funktioniert (einfache Installation keine Konfiguration), aber auf IIS 7.0 es funktioniert nicht.

, Wie es auf den IIS 7.0?

  • Ich bin mir nicht sicher, ob ich verstehe. Unter MVC, rufen Sie eine controller-Methode durch die route-engine, die mit einigen URL in der form http://mydomain/mycontroller/mycontrollermethod oder somesuch. Die controller-Methode ruft den entsprechenden cshtml-Ansicht. Warum würden Sie wollen, öffnen Sie die Ansicht direkt?
  • Siehe auch stackoverflow.com/questions/4942634/...
  • Da es sich um keine 'view' für ein typisches MVC-Anwendung, sondern ein einfaches Skript.
  • In IIS 7 für Ihre Website, haben Sie überprüft, die Handler Mappings für *.cshtml?
  • Siehe meine Antwort in EDIT4.
InformationsquelleAutor TN. | 2011-09-09
Schreibe einen Kommentar