Unable to load the specified metadata resource
Este error ocurre cuando las rutas de Entity Framework definidas en el web.config no coinciden con las que contiene el ensamblado:
Los archivos involucrados en este problema son:
.csdl
.msl
.ssdl
Para averiguar qué rutas está utilizando la aplicación, se debe ir a la carpeta bin del sitio publicado, y analizar con reflection la .dll que corresponda al nombre del sitio (en este ejemplo, el sitio se llama CobTercerosWeb, por lo cual analizaremos el archivo CobTercerosWeb.dll)
Abrir el archivo con la aplicación ILSpy
Abrir la carpeta Resources
Los nombres de los archivos que allí aparecen deben coincidir con los que se referencien en el web.config (o app.config) de la aplicación.
En este caso, el problema radica en que la configuración establecida en el web.config difiere de la ubicación real de los archivos de recursos.
El archivo Web.config contiene lo siguiente:
<add name="cexofflineEntities" connectionString="metadata=res://*/CexOfflineEntities.csdl|res://*/CexOfflineEntities.ssdl|res://*/CexOfflineEntities.msl;provider=System.Data.SqlClient;provider connection string="data source=Xdesa;initial catalog=cexoffline;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Fuente: http://www.ozkary.com/2012/10/unable-to-load-specified-metadata.html
Aplicación ILSpy: http://ilspy.net/
Los archivos involucrados en este problema son:
.csdl
.msl
.ssdl
Para averiguar qué rutas está utilizando la aplicación, se debe ir a la carpeta bin del sitio publicado, y analizar con reflection la .dll que corresponda al nombre del sitio (en este ejemplo, el sitio se llama CobTercerosWeb, por lo cual analizaremos el archivo CobTercerosWeb.dll)
Abrir el archivo con la aplicación ILSpy
Abrir la carpeta Resources
Los nombres de los archivos que allí aparecen deben coincidir con los que se referencien en el web.config (o app.config) de la aplicación.
En este caso, el problema radica en que la configuración establecida en el web.config difiere de la ubicación real de los archivos de recursos.
El archivo Web.config contiene lo siguiente:
<add name="cexofflineEntities" connectionString="metadata=res://*/CexOfflineEntities.csdl|res://*/CexOfflineEntities.ssdl|res://*/CexOfflineEntities.msl;provider=System.Data.SqlClient;provider connection string="data source=Xdesa;initial catalog=cexoffline;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Mientras que los nombres de los archivos en el ensamblado son estos:
- ModelCexOffline.csdl
- ModelCexOffline.msl
- ModelCexOffline.ssdl
Hay dos posibles soluciones:
1. En este caso, la solución es cambiar en el web.config los nombres CexOfflineEntities por ModelCexOffline.
2. Volver a crear el .edmx en el proyecto pero con los nombres correctos.
Dado que uBuilder adapta los strings de conexión dependiendo del destino de la publicación, la opción 2 es la que debe adoptarse.
Aplicación ILSpy: http://ilspy.net/

No hay comentarios:
Publicar un comentario