El Marco de la Entidad tipo de proveedor » del Sistema.De datos.Entidad.SqlServer.SqlProviderServices, EntityFramework.SqlServer’ no se pudo cargar

He creado un Servicio WCF mediante dotNet 4.5. La capa de base de datos está construida con Entity Framework 6.

Me ofreció el servicio de IIS 8. Se está trabajando muy bien.

Ahora tengo que consumir el servicio con el cliente de windows forms, que se construye mediante dotnet framework 3.5.

Puedo crear el servicio de referencia con éxito. Pero cuando voy a ejecutar el código, obteniendo el siguiente error;

El Marco de la Entidad tipo de proveedor
‘Sistema.De datos.Entidad.SqlServer.SqlProviderServices,
EntityFramework.SqlServer registrado en el archivo de configuración de la aplicación
para el ADO.NET proveedor con el nombre invariable » del Sistema.De datos.SqlClient’
no se pudo cargar. Asegúrese de que la asamblea nombre completo es
y que la asamblea está disponible para la aplicación en ejecución.
Ver http://go.microsoft.com/fwlink/?LinkId=260882 para más
información.

Alguna sugerencia?

  • Es DataAccessLayer en un proyecto diferente de su capa de servicio? ¿Has instalado EF 6 Paquete en WCF proyecto? – No parece estar relacionada con .net 3.5 o cliente, que parece estar relacionado con el servidor.
  • Sí, hay varios proyectos. Primero hay WCF de la biblioteca, y que también ha entity framework 6 instalado. Luego hay un WCF aplicación de host que aloja el servicio en IIS. A continuación, hay un proyecto de formularios windows forms en dotNet 3.5. En el proyecto de formularios windows forms que no hay entity framework instalado.
InformationsquelleAutor Ali Sakhi | 2015-09-16

3 Kommentare

  1. 12

    Usted no necesita Instalar EF6 Paquete de NuGet en la aplicación cliente, El error no está relacionado con el cliente de la aplicación, ya que la aplicación cliente se conecta a los Servicios de WCF y no sé incluso si una base de datos o capa de acceso de datos existe.

    Este error está relacionado con la falta de EntityFramework.SqlServer.dll en la carpeta bin de tu servicio de biblioteca y/o proyecto anfitrión.

    Opción 1

    La forma más simple es instalar EF6 usando NuGet Package Manager en su Host WCF en el proyecto, y si se ha instalado antes, prueba a desinstalar e instalar de nuevo. De esta manera EntityFramework.SqlServer.dll a los directorios de salida.

    Por favor, tenga en cuenta que de esta manera es de alguna manera en contra de n-capas reglas porque esta en las bibliotecas de arriba capa de acceso a datos son dependientes a EF6 que no es tan bueno.

    Opción 2

    Como una solución de copia EntityFramework.SqlServer.dll en los directorios de salida, asegúrese de que Copy Local de este archivo dll se establece en true y, a continuación, poner este código en el DbContext constructor:

    var ensureDllIsCopied = System.Data.Entity.SqlServer.SqlProviderServices.Instance; 

    Asegura EntityFramework.SqlServer.dll se copia en el directorio de salida de los consumidores de acceso a los datos del proyecto. Se trata de una solución.

    Usando de esta manera usted no tiene ninguna dependencia de la EF en las capas de arriba capa de acceso a datos.

  2. 1

    Me fijo mediante la instalación de entity framework en el WCF sitio de acogida.

    Que trabajó.

    • Como dije en Opción 1 La forma más simple es instalar EF6 usando NuGet Package Manager en su Host WCF en el proyecto.
  3. 0

    Muchas veces cuando se produce un error que un archivo dll no se puede cargar es debido a un problema de dependencia.

    Si usted está tratando de consumir o ejecutar cualquier parte de EF en su cliente, a continuación, esto puede ser un problema. Si su cliente es sólo consume POCO, entonces no importa qué versión de .NETO de su cliente es dirigido a.

    La EF 6.1.3 va a instalar en su .NET 3.5 proyecto pero no se ejecuta. La única versión de EF que soporta .NET 3.5 es v1. EF 6 y por encima sólo de apoyo .NET 4 y 4.5.

    Hay muchas características que se requieren .NET 4 y superior (por ejemplo, async)

    Puede revisar el historial de la versión de EF para ver lo que cada versión fue dirigida por en el siguiente enlace:

    https://msdn.microsoft.com/en-us/data/jj574253

    • Creo que la aplicación Cliente, es totalmente independiente de EF, ya que los servicios se implementan en IIS y aplicación de formularios de windows se ejecuta en otro machin que es cliente de la máquina y llame a los servicios de WCF.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea