Usando o ASP.NET MVC2, a rota vazia não está sendo encaminhada pelo IIS 6
-
26-09-2019 - |
Pergunta
Primeiro, deixe -me explicar que estou em uma solução hospedada e não há muito que possa fazer de maneiras de configuração e configurações para o IIS 6.
Eu tenho MVC2 trabalhando até certo ponto, estou usando o seguinte código Global.asax:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}.aspx/{action}/{id}",
new { action = "Index", id = "" }
);
routes.MapRoute(
"Root",
"",
new { controller = "Default", action = "Index", id = "" }
);
}
Na primeira rota, eu tive que especificar {controlador} .aspx, devido ao IIS 6 não conseguir executar o código não ASPX (ou algo assim, não tem certeza).
O que é bom, os seguintes trabalhos: hxxp: //mysite.com/home.aspx, hxxp: //mysite.com/projects.aspx, hxxp: //mysite.com/contact.aspx
que são todos controladores e eu também posso executar suas ações respeitadas.
O problema é que eu não posso fazer um URL vazio corretamente (ou seja, hxxp: //mysite.com/), ele me fornece um erro de "listagem de diretórios negada".
A pergunta que tenho, está com um arquivo padrão.aspx localizado no root (que executa), posso carregar o controlador doméstico sem usar uma resposta simples.Redirect?
Obrigado Matthew
Solução
O fato de você estar recebendo "Listagem de diretórios negados" significa que o Filetr ISAPI não corresponde por trabalhar com o MVC.
Outras dicas
O fato de você estar obtendo "listagem de diretório negada" significa que você não tem um documento padrão e, portanto, o servidor está tentando mostrar uma lista de arquivos na pasta root.
Atualize o documento padrão para algo como "Default.aspx". Seu provedor de hospedagem deve ter uma opção para isso. Isso é muito comum.
Você pode desativar esse comportamento no iis6 e iis7
// Disable IIS looking at physical files and directories
RouteTable.Routes.RouteExistingFiles = true;