erro ao executar asp.net MVC 2 projetar fora da caixa no vs 2010
-
05-07-2019 - |
Pergunta
i criou uma nova solução e constrói fina de metas 4.0, mas quando eu executá-lo, o meu navegador aparece dizendo:
O recurso não pode ser encontrada. Descrição: HTTP 404. O recurso que você está procurando (ou uma de suas dependências) pode ter sido removida, teve seu nome alterado ou está temporariamente indisponível. Por favor, revise o seguinte URL e certifique-se que ele foi digitado corretamente. URL solicitado: /
Algumas ideias sobre como depurar isso?
Solução
Tente adicionar a página default.aspx que vem com o asp.net mvc modelo 1.0 projeto. Eu tive um problema semelhante em execução MVC 2 para fora da caixa em um computador com IIS 5 (XP), e que fez o truque.
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);
}
}
}
Outras dicas
Você não precisa adicionar a página default.aspx descrito acima.
O navegador vai exibir esta mensagem 404 se você adicionar e executar uma nova vazia ASP.NET MVC 2 aplicativo "fora da caixa".
Isto é devido a rota padrão que é definido no global.asax.
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Você pode ver que está à procura de um controlador chamado Home e uma ação chamada Index.
Ao criar um novo esvaziar projeto é deixado para você para criar o controlador inicial e ação Index ( que eles não estão lá em um projeto vazio ), em seguida, criar a visão para a ação Index também.
Meu palpite é que você precisa para registrar novamente ou ativar o quadro ao abrigo do IIS. Tente aspnet_regiis em execução a partir da árvore quadro apropriado e / ou certifique-se de que a versão quadro adequado é permitido sob as extensões Web IIS.