ASP.NET MVC: Fazendo rotas / URLs IIS6 e IIS7-friendly
-
01-07-2019 - |
Pergunta
Eu tenho um MVC-aplicação ASP.NET que eu quero destacável em ambos IIS6 e IIS7 e como todos sabemos, IIS6 precisa do ".mvc" -naming na URL.
Será que este trabalho de código para ter certeza que funciona em todas as versões do IIS-? Sem ter que fazer ajustes especiais em código, global.asax ou config-arquivos para os diferentes-versões do IIS.
bool usingIntegratedPipeline = HttpRuntime.UsingIntegratedPipeline;
routes.MapRoute(
"Default",
usingIntegratedPipeline ?
"{controller}/{action}/{id}" : "{controller}.mvc/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
Atualizar : esqueci de mencionar. Sem ISAPI. site hospedado, nenhum controle sobre o servidor IIS.
Solução
Isso deve resolver o problema .mvc desde o pipeline integrado é IIS7 estritamente. Mas lembre-se de alterar as configurações no site do IIS7 usar "2.0 Integrated Pipeline" otherwhise ele irá retornar falsa cabeceira. Também ofcouse configurar o mapeamento de .mvc ao asp.net isapi dll, mas Im supondo que você já sabe disso.
Algumas pequenas sugestões sobre outras coisas que você pode precisar para se lembrar quando a implantação de aplicativos do MVC no IIS6 que eu achei úteis: http://msmvps.com/blogs/omar/archive/2008/06/30/deploy-asp-net-mvc-on-iis-6-solve-404-compression- e desempenho-problems.aspx
Outras dicas
Você pode usar um filtro ISAPI para reescrever URLs que permitem que você tenha os URLs agradáveis ??enquanto ainda no IIS 6.
Veja, por exemplo, aqui