wake-up-neo.com

ASP.NET MVC 2-Webanwendung kann nicht ausgeführt werden IIS 7.5

Ich versuche, eine ASP.NET MVC 2-Webanwendung unter IIS unter Windows 7 auszuführen, aber ich erhalte die Fehlermeldung 403.14. Hier sind die Schritte zum Reproduzieren:

  1. Öffnen Sie Visual Studio 2010
  2. Erstellen Sie ein neues ASP.NET MVC 2-Projekt mit dem Namen MvcApplication1
  3. Umschalttaste + F5, um die App 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 "Use Local IIS Web server" aus und erstellen Sie ein virtuelles Verzeichnis. 
  6. Sparen.
  7. Umschalttaste + F5, um die App auszuführen. Sie sollten http://localhost/MvcApplication1/ und einen Fehler IIS HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory. sehen.

ASP.NET-Routing funktioniert aus irgendeinem Grund nicht ordnungsgemäß. 

Dinge, an die ich bereits gedacht und ausprobiert habe:

  • Verifiziert, dass alle IIS - Funktionen unter "Windows-Funktionen ein- oder ausschalten" aktiviert sind.
  • Verifiziert, dass die Standardwebsite für die Verwendung von .NET 4.0 konfiguriert ist
  • Erneut zugewiesene ASP.NET v4-Scripmaps über aspnet_regiis -i im Verzeichnis v4.0.30319.

Hier ist der erstaunlichste Teil - dies ist auf einer soeben gebauten Maschine. Neue Kopie von Windows 7 x64 Ultimate, saubere Installation von Visual Studio 2010 Premium, keine anderen Websites und keine anderen durchgeführten Arbeiten. 

Kann ich sonst noch etwas probieren? 

Festlegen von Visual Studio zur Verwendung des lokalen IIS - Webservers http://i41.tinypic.com/11j176b.png

62
Portman

Ok, das wird für mich gelöst, indem Sie Folgendes tun:

Ausführen von aspnet_regiis -i im Verzeichnis 32-bit c:\Windows\Microsoft.NET\Framework\v4.0.30319.

Zu diesem Zeitpunkt verstehe ich nicht, warum der 64-Bit-Modus nicht funktioniert, aber ich bin jetzt entsperrt. Hoffentlich hilft dies allen anderen, die dieses Problem haben.

85
Portman

Ich hatte genau das gleiche Problem, also vielen Dank für Ihre Hilfe.

Versuchen Sie jedoch, den Befehl aspnet_regiis -i in der 64-Bit-Eingabeaufforderung von Visual Studio (mit Administratorrechten) auszuführen. Als ich das tat, wurde es für den 64-Bit-Modus behoben.

Zur Verdeutlichung habe ich mit der rechten Maustaste auf Visual Studio x64 Win64 Command Prompt (2010) geklickt und die Option Als Administrator ausführen ausgewählt. Dann bin ich hier hingegangen:

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

Und tat das: aspnet_regiis -i

Und jetzt funktioniert es perfekt.

46
Tom Chantler

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

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
27
Rohan West

Beachten Sie außerdem, dass Ihr Anwendungspool auf integriert und nicht klassisch eingestellt ist

7
JGilmartin

Verwenden Sie nicht runAllManagedModulesForAllRequests. Sie möchten, dass IIS Ressourcen wie Bilder verwaltet.

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

Fügen Sie stattdessen das MVC-Routingmodul hinzu

<system.webServer>
  <modules>
    <remove name="UrlRoutingModule-4.0" />
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
  </modules>
</system.webServer>
7
Chris Herring

Ich hatte das gleiche Problem auf IIS8/Windows Server 2012. Keine der vielen vorgeschlagenen Lösungen funktionierte, bis ich Folgendes ausprobierte.

dism /online /enable-feature /featurename:IIS-ASPNET45 /All

Ohne die Option "/ All" wurde beanstandet, dass keine übergeordnete Funktion installiert wurde.

Das Merkwürdige ist, dass asp.net 4.5 laut Windows Windows-Funktionen ein- oder ausschalten facility bereits installiert war. 

Es war nicht notwendig, Änderungen an der web.config vorzunehmen, Module hinzuzufügen oder zu entfernen.

4

Ich habe immer die benutzerdefinierte Servereinstellung in VS 2008 verwendet, wodurch ich weiterhin problemlos debuggen kann. Nicht sicher, ob es in 2010 anders funktioniert

0
Daniel Schaffer

Ich hatte diese Symptome. Mein Global.asax stürzte ab. Der Absturz wurde behoben, jetzt funktioniert alles.

0
Charlie