Ich habe gerade meine asp.net mvc-2-Website auf einem Server bereitgestellt (mit Dotnetpanel). Aber diesen Fehler bekommen
A default document is not configured for the requested URL, and directory browsing is not enabled on the server.
Welche Einstellungen brauche ich? Sein Dotnetpanel-basierter Hosting-Server.
Welche Version von IIS läuft auf Ihrem Host? Versuchen Sie es mit einer Dummy-Datei default.aspx im Stammverzeichnis (dies wird nicht verwendet, wenn MVC funktioniert, kann aber dieses Problem beseitigen).
Die markierte Antwort hilft Ihnen, den Fehler zu beheben, aber MVC wird nicht funktionieren. Die Antwort auf das Problem besteht darin, diese Zeile zur Datei web.config in system.webServer hinzuzufügen:
<modules runAllManagedModulesForAllRequests="true" />
Das Folgende gilt für IIS 7
Der Fehler versucht, Ihnen mitzuteilen, dass eines der beiden Probleme nicht richtig funktioniert:
Anweisungen zum Diagnostizieren und Beheben der oben genannten Probleme finden Sie unter dem folgenden Link.
http://support.Microsoft.com/kb/942062/en-us
Wenn keines dieser Probleme das Problem ist, müssen Sie auch überprüfen, ob der Anwendungspool für Ihre Website konfiguriert ist (wählen Sie Ihre Website unter IIS Manager aus und klicken Sie ganz rechts auf "Grundeinstellungen" ) wird mit derselben .NET Framework-Version (in IIS Manager unter "Application Pools") wie das in Ihrer web.config konfigurierte targetFramework konfiguriert, z.
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime targetFramework="4.0" />
</system.web>
Ich bin mir nicht sicher, warum dies zu einer scheinbar unabhängigen Fehlermeldung führen würde, aber es hat mir geholfen.
Beim Versuch, meine ASP.NET-Website mit dem Express-Server IIS zu debuggen, der von Visual Studio verwendet wird, wenn wir auf drücken, ist genau derselbe Fehler aufgetreten F5 um die Website zu betreiben.
Öffnen Sie den Projektmappen-Explorer in Visual Studio -> Erweitern Sie den Projektknoten der Webanwendung (StudentInfo
in meinem Fall) -> Klicken Sie mit der rechten Maustaste auf die Webseite (StudentPortal.aspx
In meinem Fall), die geladen werden soll Wenn meine Website gestartet wird -> Wählen Sie im Kontextmenü die Option Set as Start Page
(siehe unten). Ab dem nächsten Lauf fing es an zu funktionieren.
Grundursache : Ich bin zu dem Schluss gekommen, dass die Startseite, die im Wesentlichen das Standarddokument für die Website ist, während der Entwicklung nicht korrekt eingerichtet oder irgendwie durcheinander gebracht wurde.
Dies kann auch vorkommen, wenn Sie etwas Dummes tun (wie ich es getan habe) und die API-URL in der "Projekt-URL" (z. B. http: // localhost: 59088/api/Product ) in den Projekteigenschaften-> Web einfügen Registerkarte, anstatt sie im Textfeld "Bestimmte Seite" anzugeben. Dies führt dazu, dass Visual Studio eine APP mit dem Namen ProjectName/api/Product erstellt und eine Standardseite erwartet. Die einzige Möglichkeit, dies rückgängig zu machen, besteht darin, zu C:\Programme (x86)\IIS Express zu gehen und die Datei appcmd.exe zu verwenden
>.\appcmd.exe delete APP "ProjectName/api/Product"
Haben Sie dieser Klasse eine Standardroute hinzugefügt?
public class RouteConfig {
public static void RegisterRoutes (RouteCollection routes) {`
//"HomePage" is the root view of your app
routes.MapRoute (
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Home", action = "HomePage", id = UrlParameter.Optional
}
);
}
}
` Fügen Sie anschließend in Global.asax.cs diese Zeile zur Application_Start () - Methode hinzu:
RouteConfig.RegisterRoutes (RouteTable.Routes);
Ich hatte dieses Problem, nachdem ich ein Upgrade von MVC4 auf MVC5 nach folgendem this post vorgenommen hatte, und ich hatte diese Zeile aus einem Grund kommentiert, den ich vergessen habe.
Hoffe das hilft!
Vergewissern Sie sich, dass Sie Ihre Standardseite als index.aspx und nicht etwas wie main.aspx oder home.aspx . Und sorgen Sie auch dafür, dass alle Ihre Eigenschaften in Ihrer Klasse genau mit denen Ihrer Tabelle in der Datenbank übereinstimmen . Entfernen Sie alle Eigenschaften, die nicht mit der Datenbank synchron sind. Das hat mein Problem gelöst !! :)
In meinem Fall musste ich das Microsoft.Owin.Host.SystemWeb
-Paket installieren.
Ich erhielt die gleiche Nachricht wie Sie, bemerkte dann jedoch, dass ich in Startup.cs
keinen Haltepunkt finden konnte, der mich dann zum this SO Thread brachte.
Der Täter könnte in der Tatsache liegen, dass Global.asax im falschen Verzeichnis innerhalb des mvc-Projekts platziert wurde. In meinem Fall wurde es unter/Views platziert, aber ich musste es verschieben. Es sollte sich unter dem Stammordner des Projekts befinden.
In Ihrem Fall könnten Sie genau das Gegenteil sein - führen Sie einige Tests durch und überzeugen Sie sich selbst.