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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top