Temos um site ASP.NET em execução no IIS 7.5 com um banco de dados MySQL usando o conector .net, os provedores de associação / função estão configurados no web.config corretamente e funcionam - mas apenas temporariamente.
Historicamente (conector .NET 6.7.4.0 e anterior) sempre tivemos um problema depois de restaurar backups de site, incluindo as tabelas de associação, recebíamos um erro na página dizendo que tínhamos um "esquema ausente ou incorreto" para a associação provedor, o que é um absurdo, porque podemos ver as tabelas claramente no DB.
Para resolver isso, basta excluir as tabelas de associação do banco de dados, definir autogenerateschema = true no web.config, permitir que o provedor de funções gere as tabelas novamente, o que funciona. Podemos então restaurar a partir do nosso backup (o mesmo backup!) E sobrescrever as novas tabelas em branco com as nossas contas existentes e tudo funciona bem. Nós achamos que isso era apenas um capricho com o conector .net e como isso só acontecia depois de restaurar o banco de dados dos backups, não éramos muito incomodados.
Agora atualizamos para o conector .net 6.9.4.0. Estamos com o mesmo problema, só que é pior porque agora se o pool de aplicativos for reiniciado para esse site, ele acionará a mesma mensagem "esquema ausente ou incorreto" e aplique a correção acima. Fazer coisas como fazer alterações no web.config acionam um ciclo de pool de aplicativos, o que significa que não podemos fazer alterações no web.config sem baixar o site!
Este é o provedor de funções do web.config com alguns detalhes omitidos, nunca é alterado além de nós atualizarmos manualmente o número da versão.
<roleManager defaultProvider="MySQLRoleProvider" enabled="true">
<providers>
<clear />
<add name="MySQLRoleProvider" type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.9.4.0, Culture=neutral, PublicKeyToken=xxxxxx" applicationName="xxxxx" connectionStringName="xxxxxx" autogenerateschema="True" />
</providers>
</roleManager>
Deve-se observar que depois de acionar esse erro e aplicar nossa correção, restauramos as tabelas de associação do mesmo backup exato, isso significa que as tabelas são idênticas antes / depois da correção, portanto, não pode haver um problema com o banco de dados. é algum estado interno do IIS.