Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 19035|Respuesta: 0

[Resuelto] . Conflictos en el conector .NET MySQL DbProviderFactories (Conflictos en el conector .NET MySQL DbP...

[Copiar enlace]
Publicado el 2020-11-11 09:11:52 | | |
Esta publicación fue editada por última vez por QWERTYU el 11-11-2020 a las 09:14

Escenario:
Abre un proyecto .NET usando la base de datos mysql e instálalo en el entorno de desarrollo local.NET conector MySQL, todo funciona bien, pero cuando se libera en IIS, el programa es anormal y el mensaje de error es el siguiente:
Información sobre la excepción:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> información de excepción: El proveedor de ADO.NET con el nombre fijo "MySql.Data.MySqlClient" no está registrado en el perfil del ordenador ni de la aplicación ni puede cargarse. Para más información, consulte Excepciones Internas.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Encuentra el problema:
He comprobado que el servidor no está instalado.NET MySQL, dado que mysql utiliza la base de datos en la nube de Alibaba Cloud, también hay varios servidores, para evitar la instalación en cada servidor.NET conector MySQL,Para ello, me aseguré de poner las referencias MySQL en "copia local" para poder copiarlas a la carpeta bin y añadir lo siguiente a mi app.config:
Después de añadir la configuración anterior, funciona bien en el servidor y puedo desplegar la aplicación sin tener que instalar el conector MySQL en el servidor, pero ahora tengo un problema en mi equipo local de desarrollo (con el conector MySQL instalado) y me sale este error cuando intento conectar EF:
Información sobre la excepción:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> información de excepción: El proveedor de ADO.NET con el nombre fijo "MySql.Data.MySqlClient" no está registrado en el perfil del ordenador ni de la aplicación ni puede cargarse. Para más información, consulte Excepciones Internas.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Prueba la acción:
Si comento el XML añadido arriba en la configuración, el error desaparece. Esto puede deberse a que el mismo controlador está instalado en el sistema y se encuentra en machine.config.
La solución final y por qué:
Prueba a añadir <remove invariant="MySql.Data.MySqlClient" /> en tu webconfig. En tu máquina, ya tienes instalado el conector MySql, y modificas el sistema machine.config añadiendo uno en DbProviderFactories. Así que si pones otro proveedor de datos MySQL en tu web.config, es como si hubieras intentado registrar lo mismo dos veces.











Anterior:C# coloca las DLL de la biblioteca de referencia en subcarpetas mediante sondeo
Próximo:ASP.NET Trazado de Enlace Principal (3) SkyAPM se basa en la configuración dinámica de Consul
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com