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.

Foi útil?

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

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