Locaweb

Hospedo este site na Locaweb faz um bom tempo, e nunca tive problemas com eles, seja técnicos ou financeiros.

Mas eis que eles fizeram a migração do servidor onde minha hospedagem é compartilhada com outros e tive alguns problemas técnicos, que percebi ao acessar o site para fazer uma postagem:

- Erro na requisição, o domínio entrava porém o conteúdo não era exibido, no lugar dele, uma mensagem de erro (mensagem customizada pela minha aplicação - este CMS que gera o NeoMatrix Tech).

- Para ver se não era erro no config, tento acessar o FTP para pegar os dados de acesso à base de dados para ver se o problema era com ela, porém o FTP não entra, mesmo com o usuário e senha corretos.

Isso só para começar!

Abri um chamado na Locaweb, e em torno de umas 2 horas o problema do FTP foi resolvido, porém o da base de dados não. Com os dados de conexão obtidos, entro na base do site e está tudo lá em ordem.

Então o problema pode ser com a minha aplicação! O gerenciador de conteúdo que gera a página que você vê agora é simples em termos de programação, na seguinte plataforma Windows, Framework .NET 2.0 (o que o servidor suportava antes de ser migrado), IIS 7, MySQL.

Após alguns testes, verifiquei que o problema é com o driver ADO.NET para MySQL, no caso eu usava a versão 6.3.7. Dava alguns erros referentes a permissões.

Recompilei o site para usar a versão mais recente, a 6.9.9 e nada feito, mesmo erro, inclusive colocando alguns parâmetros na string de conexão. E ainda bem que os métodos que eu uso para CRUD estão abstraídos em uma classe, e nenhuma chamada direta ao ADO.NET é feita fora desta classe.

Claro que não fechei o chamado anterior, e sim informei o problema com o MySQL Connector. E eis que o analista de suporte disse para usar uma versão ABAIXO da 6.0, no caso eu estou utilizando no momento a versão 5.2.7, a última antes de virar a versão "major".

Fiz os ajustes necessários, no caso apenas trocar novamente a DLL "mysql.data" e recompilar o site. Subi para a hospedagem e agora tudo funcionando, ou quase.

Eis que ao fazer um artigo para um dos sites e gravar, dá erro durante o POST, a HttpRequestValidationException, por estar injetando conteúdo HTML no submit.

Mas CLARO que a diretiva ValidateRequest está em FALSE, senão não iria conseguir escrever anteriormente! Mas como o servidor foi migrado para o ASP.NET 4.0, para que isto funcione necessitei de acrescentar a seguinte linha no web.config (na seção system.web):

<httpRuntime requestValidationMode="2.0"/>

Fiz as alterações, e agora sim, 100% funcional.

Portanto, se você tem um site ASP.NET + MySQL rodando na LocaWeb em hospedagem compartilhada e ele começou com problemas após a migração do servidor web, veja se carece fazer um "downgrade" do ADO.NET MySQL Connector, e coloque a diretiva de modo de validação de requisições para 2.0. No meu caso funcionou, com a ajuda do suporte deles, é bom frisar.

Mas pelo menos agora ele roda no ASP.NET 4.0, que tem muito mais recursos que o 2.0, mesmo rodando em Partial Trust.

PS: o problema ocorria desde o dia 13/07, mas só fui perceber ontem (17).