Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 19035|Resposta: 0

[Resolvido] . .NET MySQL Connector Conflitos DbProviderFactories (.NET MySQL Connector Conflicts DbP...

[Copiar link]
Postado em 2020-11-11 09:11:52 | | |
Este post foi editado pela última vez por QWERTYU em 2020-11-11 às 09:14

Cenário:
Abra um projeto .NET usando o banco de dados mysql e instale-o no ambiente de desenvolvimento local.NET MySQL, tudo está funcionando normalmente, mas quando é liberado para IIS, o programa está anormal e a mensagem de erro é a seguinte:
Informações de exceção:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informações de exceção: O provedor ADO.NET com o nome fixo "MySql.Data.MySqlClient" não está registrado no perfil do computador ou da aplicação ou não pode ser carregado. Para mais informações, veja Exceções Internas.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Encontre o problema:
Descobri que o servidor não está instalado.NET MySQL, como o MySQL usa o banco de dados em nuvem do Alibaba Cloud, também existem múltiplos servidores, para evitar a instalação em cada servidor.NET conector MySQL,Para isso, certifiquei-me de definir as referências do MySQL para "cópia local" para poder copiá-las na pasta bin e adicionar o seguinte ao meu app.config:
Depois de adicionar a configuração acima, funciona bem no servidor e posso implantar o aplicativo sem instalar o conector MySQL no servidor, mas agora tenho um problema na minha máquina de desenvolvimento local (com o conector MySQL instalado) e recebo esse erro quando tento conexão EF:
Informações de exceção:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informações de exceção: O provedor ADO.NET com o nome fixo "MySql.Data.MySqlClient" não está registrado no perfil do computador ou da aplicação ou não pode ser carregado. Para mais informações, veja Exceções Internas.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Experimente a ação:
Se eu comentar o XML adicionado acima na configuração, o erro desaparece. Isso pode ser porque o mesmo driver está instalado no sistema e está localizado no machine.config.
A solução final e o porquê:
Tente adicionar <remove invariant="MySql.Data.MySqlClient" /> na sua configuração web. Na sua máquina, você já tem o conector MySQL instalado, e você modifica seu machine.config adicionando um no DbProviderFactories. Então, se você colocar outro provedor de dados MySQL no seu web.config, é como se você tentasse registrar a mesma coisa duas vezes.











Anterior:C# coloca DLLs de bibliotecas de referência em subpastas por meio de sondagem
Próximo:ASP.NET Core Link Tracing (3) O SkyAPM é baseado na configuração dinâmica do Consul
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com