Tive um problema com meus parâmetros no MVC. Se você costuma mexer com MVC e já brincou com o routeConfig, sabe que pode mexer na Url como quiser. No meu caso, tudo que eu estava fazendo era passar uma string como parâmetro na url. E funcionava lindamente. Na minha máquina.
Subimos para o ambiente de homologação, tudo certo. Subimos para produção. O cliente pediu para subir temporariamente oculto por uma pasta. Fácil, virtual directory. Tudo funcionando, ótimo... Até aparecer um ponto entre as palavras que estavam como parâmetro. Foi lindo:
"The resource you are looking for has been removed, had its name changed, or is temporarily unavailable."
Muito bonito. Um 404. De uma página que existe. A diferença? O maldito ponto. E vai fazer busca por MVC dot parameter. Enfim, busquei e acabei encontrando uma solução para colocar no web.config: http://stackoverflow.com/questions/11048863/modules-runallmanagedmodulesforallrequests-true-meaning.
Logo abaixo, alguém pergunta sobre a vulnerabilidade da solução. Me deu insegurança. Ninguém respondeu. Mas, em um dos comentários, a pessoa cita outro post: http://stackoverflow.com/questions/20998816/dot-character-in-mvc-web-api-2-for-request-such-as-api-people-staff-45287
Apesar da solução aceita ser a mesma, logo abaixo alguém postou outra solução:
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" />
Procurei apenas pelo trecho e achei lugares afirmando que seria mais segura, por ser menos aberta.
Fora isso, apenas uma coisa: para simular o erro com virtual directory não foi necessário ficar publicando diversas vezes. Apenas colocar o path a mais no routeConfig foi suficiente, o erro que aconteceu foi o mesmo.
Nenhum comentário:
Postar um comentário