Pregunta

Creé una nueva solución y construye una estructura de objetivos 4.0, pero cuando la ejecuto, mi navegador aparece diciendo:

No se puede encontrar el recurso. Descripción: HTTP 404. El recurso que está buscando (o una de sus dependencias) podría haberse eliminado, haber cambiado su nombre o no está disponible temporalmente. Revise la siguiente URL y asegúrese de que esté escrita correctamente. URL solicitada: /

alguna idea sobre cómo depurar esto?

¿Fue útil?

Solución

Intente agregar la página default.aspx que viene con la plantilla de proyecto asp.net mvc 1.0. Tuve un problema similar al ejecutar mvc 2 fuera de la caja en una computadora con IIS 5 (XP), y eso funcionó.

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);
        }
    }
}

Otros consejos

No necesita agregar la página default.aspx descrita anteriormente.

El navegador mostrará este mensaje 404 si agrega y ejecuta una nueva aplicación Vacío ASP.NET MVC 2 "fuera de la caja".

Esto se debe a la ruta predeterminada que se define en global.asax.

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

Puede ver que está buscando un controlador llamado Inicio y una acción llamada Índice.

Al crear un nuevo proyecto vacío , le corresponde a usted crear el controlador de inicio y la acción de índice ( no están allí en un proyecto vacío ), luego cree la vista para la acción de índice también.

Supongo que debe volver a registrar o habilitar el marco en IIS. Intente ejecutar aspnet_regiis desde el árbol de marco apropiado y / o asegúrese de que la versión de marco adecuada esté permitida en las extensiones web de IIS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top