error al ejecutar asp.net mvc 2 proyecto fuera de la caja en vs 2010
-
05-07-2019 - |
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?
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.