63 Stimmen

Kann die ASP.NET MVC 2-Web-App nicht auf IIS 7.5 ausführen

Ich versuche, eine ASP.NET MVC 2-Webanwendung unter IIS unter Windows 7 auszuführen, aber ich erhalte einen 403.14 Fehler. Hier sind die Schritte, um das Problem zu reproduzieren:

  1. Visual Studio 2010 öffnen
  2. Ein neues ASP.NET MVC 2-Projekt mit dem Namen MvcApplication1 erstellen
  3. Shift+F5, um die Anwendung auszuführen. Sie sollten http://localhost:{random_port}/ sehen und die Seite wird korrekt gerendert.
  4. Klicken Sie auf MvcApplication1 und wählen Sie "Eigenschaften". Gehen Sie zum Abschnitt "Web".
  5. Wählen Sie "Lokalen IIS-Webserver verwenden" und erstellen Sie ein virtuelles Verzeichnis.
  6. Speichern.
  7. Shift+F5, um die Anwendung auszuführen. Sie sollten http://localhost/MvcApplication1/ sehen und einen IIS-Fehler HTTP-Fehler 403.14 - Verboten Der Webserver ist so konfiguriert, dass er den Inhalt dieses Verzeichnisses nicht auflistet. sehen.

Es ist klar, dass aus irgendeinem Grund das ASP.NET-Routing nicht korrekt funktioniert.

Dinge, an die ich bereits gedacht habe und ausprobiert habe:

  • Überprüft, dass alle IIS-Funktionen in "Windows-Features ein- oder ausschalten" aktiviert sind.
  • Überprüft, dass die Standardwebsite so konfiguriert ist, dass sie .NET 4.0 verwendet
  • ASP.NET v4-Skriptmappe erneut über aspnet_regiis -i im Verzeichnis v4.0.30319 zugewiesen.

Hier ist der erstaunlichste Teil - dies geschieht auf einem gerade erstellten Rechner. Neue Kopie von Windows 7 x64 Ultimate, saubere Installation von Visual Studio 2010 Premium, keine anderen Websites und keine anderen Arbeiten durchgeführt.

Gibt es noch etwas, das ich versuchen kann?

Einstellung von Visual Studio, um den lokalen IIS-Webserver zu verwenden

86voto

Portman Punkte 31245

Ok, das ist für mich gelöst, indem ich folgendes gemacht habe:

Ich habe aspnet_regiis -i im 32-Bit Verzeichnis c:\Windows\Microsoft.NET\Framework\v4.0.30319 ausgeführt.

Zu diesem Zeitpunkt verstehe ich nicht, warum der 64-Bit-Modus nicht funktioniert, aber ich bin jetzt nicht mehr blockiert. Hoffentlich hilft das auch anderen, die dieses Problem haben.

46voto

Tom Chantler Punkte 14287

Ich hatte genau dasselbe Problem, daher danke für deine Hilfe.

Allerdings... hast du versucht, den Befehl aspnet_regiis -i in der Visual Studio 64-Bit-Eingabeaufforderung (mit Administratorrechten) auszuführen? Als ich das gemacht habe, hat es das Problem im 64-Bit-Modus behoben.

Zur Klarstellung, ich habe mit der rechten Maustaste auf Visual Studio x64 Win64 Command Prompt (2010) geklickt und Als Administrator ausführen gewählt. Dann bin ich hierhin gegangen:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

Und habe dies gemacht: aspnet_regiis -i

Und jetzt funktioniert es einwandfrei.

26voto

Rohan West Punkte 9152

Stellen Sie außerdem sicher, dass Ihre Konfigurationsdatei die folgende Zeile enthält, da sonst das Routing nicht funktioniert.

8voto

Chris Herring Punkte 3637

Verwenden Sie nicht runAllManagedModulesForAllRequests. Lassen Sie IIS Ressourcen wie Bilder verarbeiten.

Fügen Sie stattdessen das MVC-Routing-Modul hinzu

7voto

JGilmartin Punkte 7586

Eine weitere Sache ist zu beachten, stellen Sie sicher, dass Ihr Anwendungspool auf integriert und nicht auf klassisch eingestellt ist

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