miércoles, 24 de febrero de 2010

The specified named connection is either not found in the configuration (Visual Studio 2010 RC)

En versiones anteriores de Visual Studio, como la 2008, había probado la lectura de la configuración (x.config) de una aplicación desde una capa intermedia sin mayor problema.

Por ejemplo una capa de datos que tuviera un ConnectionString (digamos por omisión) en su propio archivo de configuración. Se tendría entonces:

DAL.dll y DAL.dll.config con la conexión al origen de datos.

En tal caso, con las versiones previas, no había ningún problema y sólo si un cliente (Windows, Web) requería redefinir esta conexión entonces simplemente se redefinía la misma, en el archivo de configuración correspondiente al cliente y listo.

Al realizar un ejercicio similar con Visual Studio 2010 RC (entiendo que con el beta pasa lo mismo) y ADO.NET Entity Framework no me era posible conectarme al origen de datos con el siguiente error (o BUG):

System.ArgumentException: The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.

image

El problema sucede en el constructor predeterminado del contexto de mis entidades. En este constructor, al no especificar la conexión, se espera que la misma se lea justamente desde la configuración.

Intenté redefinir la conexión en el archivo de configuración de mi consola y el mismo error sucedía.

La solución la encontré en este foro y es básicamente darle vuelta haciendo dos cosas:

  1. Copiar la cadena de conexión al archivo de configuración de su aplicación cliente o consumidora (Windows, Web). Esto no es opcional.
  2. tomar la conexión del proveedor de System.Data.EntityClient y en la cadena de conexión (connectionString) buscar la parte que se refiere al proveedor su base de datos y cambiar las entidades XML “"” por una comilla simple (‘). Esto es evidentemente un BUG.

Colocar las comillas simples en el archivo de configuración de la capa intermedia tampoco funciona.

Luego de estos dos cambios me funcionó bien. Espero que sea un BUG y no un cambio de paradigma.

Etiquetas de Technorati: ,,

4 comentarios:

  1. Gracias por el dato, funciono barbaro !!!!

    ResponderEliminar
  2. Hola, puedes ser mas específico, es que no te entendí bien como lo solucionaste
    Gracias por su atención

    ResponderEliminar
    Respuestas
    1. Hola Miguel, perdón, esto es un poco viejo pero te contesto aunque sea tarde, es que la cadena de conexión tiene un atributo XML con la conexión de SQL pero entre comillas por lo que adentro del texto de la conexión en vez de comillas se utiliza la entidad " y se puede sustituir la misma por una comilla simple ' para que funcione.

      Eliminar

Gracias de antemano por sus comentarios.