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.
|