errore durante l'esecuzione del progetto asp.net mvc 2 out of the box in vs 2010
-
05-07-2019 - |
Domanda
ho creato una nuova soluzione e crea un ottimo framework di targeting 4.0 ma quando lo eseguo, viene visualizzato il mio browser dicendo:
Impossibile trovare la risorsa. Descrizione: HTTP 404. La risorsa che stai cercando (o una delle sue dipendenze) potrebbe essere stata rimossa, se il suo nome fosse cambiato o fosse temporaneamente non disponibile. Esamina il seguente URL e assicurati che sia stato digitato correttamente. URL richiesto: /
qualche idea su come eseguire il debug di questo?
Soluzione
Prova ad aggiungere la pagina default.aspx fornita con il modello di progetto asp.net mvc 1.0. Ho avuto un problema simile con l'esecuzione di mvc 2 out of the box su un computer con IIS 5 (XP) e questo ha funzionato.
Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="YourNamespace.Website.Default" %>
<%-- Please do not delete this file. It is used to ensure that ASP.NET MVC is activated by IIS when a user makes a "/" request to the server. --%>
Default.aspx.cs:
using System.Web;
using System.Web.Mvc;
using System.Web.UI;
namespace YourNamespace.Website
{
public partial class Default : Page
{
public void Page_Load(object sender, System.EventArgs e)
{
// Change the current path so that the Routing handler can correctly interpret
// the request, then restore the original path so that the OutputCache module
// can correctly process the response (if caching is enabled).
string originalPath = Request.Path;
HttpContext.Current.RewritePath(Request.ApplicationPath, false);
IHttpHandler httpHandler = new MvcHttpHandler();
httpHandler.ProcessRequest(HttpContext.Current);
HttpContext.Current.RewritePath(originalPath, false);
}
}
}
Altri suggerimenti
Non è necessario aggiungere la pagina default.aspx sopra descritta.
Il browser visualizzerà questo messaggio 404 se aggiungi ed esegui una nuova applicazione Vuota ASP.NET MVC 2 "pronta all'uso".
Ciò è dovuto alla route predefinita definita in global.asax.
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Puoi vedere che sta cercando un controller chiamato Home e un'azione chiamata Index.
Quando si crea un nuovo progetto vuoto , è necessario creare il controller Home e l'azione Index ( non sono presenti in un progetto vuoto ), quindi creare la vista anche per l'azione dell'Indice.
La mia ipotesi è che è necessario registrare nuovamente o abilitare il framework in IIS. Prova a eseguire aspnet_regiis dall'albero del framework appropriato e / o assicurati che la versione del framework appropriata sia consentita con le estensioni web IIS.