Execute asp.net MVC na sua hospedagem windows


Como já comentei, estou começando a desenvolver em asp.net MVC. Antes de iniciar um projeto com o RC2 do asp.net MVC, resolvi publicar o projeto de exemplo da Microsoft para testar a compatibilidade da Locaweb com o o MVC.

Para minha surpresa o projeto não funcionou, algo impede que as views apareçam. Enquanto a Locaweb não responde meu chamado, fiz umas pesquisas e descobri que:

1) As Dll´s do MVC não ficam mais na pasta bin

Esse problema afeta os servidores que não tem o MVC instalado, o que é o meu caso. Descobri isso e a solução no blog do Dennis Oliveira. Basta alterar nas referências das dll´s do MVC a propriedade Copy Local para True.

Mesmo assim meu projeto ainda não funcinava na Locaweb.

2) Alterar o Global.asax

Dependendo da versão do IIS, pode ser necessário alterar o Global.asax para que o IIS entenda a URL da página (dica do Felipe Fujiy) É um quebra-galho, mas como estou apenas testando o MVC, resolve a necessidade no momento.

Eu utilizo vb.net, assim a alteração proposta pelo Felipe fica assim:

[code language=”vb.net”]
routes.MapRoute( _
"Default", _
"{controller}.aspx/{action}/{id}", _
New With {.controller = "Home", .action = "Index", .id = ""} _
)

routes.MapRoute( _
"Root", _
"", _
New With {.controller = "Home", .action = "Index", .id = ""} _
)
[/code]

Agora que consegui publicar minha primeira aplicação e ela funciona, vou fazer uma pequena loja virtual baseada no exemplo da Microsoft no site do asp.net MVC.

Update (06/03/2009)

Para publicar uma aplicação Asp.net MVC na Locaweb, basta publicar as DLL´s do MVC na pasta bin do projeto, se o seu servidor for Windows 2008. Caso o servidor seja Windows 2003, será necessário fazer uma alteração através do painel de controle, conforme esta orientação.

Porque a configuração não funcionou no meu caso?

Estou publicando o projeto em um servidor dedicado Windows 2003 da Locaweb. No meu servidor o Wildcard não estava configurado no IIS e a versão do asp.net 3.5 não era a SP1, pois não solicitei a atualização. Agora, com  o IIS configurado e .net SP1 a aplicação está funcionando. A única necessidade foi publicar as DLL´s do MVC na pasta bin.

Se o servidor é dedicado, porque não instalar o Asp.net MVC no servidor? Optei por não instalar em virtude da versão final do MVC não estar disponível e por minha aplicação ser apenas para teste.