none
The requested database EsbExceptionDb is not defined in configuration RRS feed

  • Pregunta

  • Buenas tardes comunidad,

    Tengo el siguiente problema utilizando el método DatabaseFactory.CreateDatabase de Microsoft.Practices.EnterpriseLibrary.Data.

    Esto me sucede cuando estoy montando el portal ESB, alguien se ha topado con este error haciendo el llamado a esta instrucción.

    No crea la base de datos y me aparece el error del titulo del foro

    Gracias espero por favor me ayuden llevo varios días en el error.


    lunes, 6 de octubre de 2014 21:23

Todas las respuestas

  • Por el mensaje de error que te sale, tiene toda la pinta de que no tienes definida la cadena de conexión en el archivo .config de la aplicación. Si la llamada a CreateDatabas la estás haciendo desde una DLL (proyecto de librería de clases), recuerda que el fichero .config de ese proyecto únicamente se usa en tiempo de diseño, pero en tiempo de ejecución la DLL sólo usa el .config del ejecutable que la invoca. Es en éste último donde tienes que meter la cadena de conexión.

    martes, 7 de octubre de 2014 6:32
  • Por el mensaje de error que te sale, tiene toda la pinta de que no tienes definida la cadena de conexión en el archivo .config de la aplicación. Si la llamada a CreateDatabas la estás haciendo desde una DLL (proyecto de librería de clases), recuerda que el fichero .config de ese proyecto únicamente se usa en tiempo de diseño, pero en tiempo de ejecución la DLL sólo usa el .config del ejecutable que la invoca. Es en éste último donde tienes que meter la cadena de conexión.

    Hola ya tengo configurado el .confg con el nombre de la base de datos 

    <add name="TesDb" connectionString="Data Source=SQL2008;Initial Catalog=TesDb;Integrated Security=True" providerName="System.Data.SqlClient" />

    Y aún así me sigue saliendo el error y el llamado lo hago desde la DLL.

    martes, 7 de octubre de 2014 18:14
  • ya tengo configurado el .confg con el nombre de la base de datos 

    Sí, pero ¿en qué .config has hecho eso? Si lo has hecho en el .config de la DLL, no funcionará. Tiene que hacerse en el .config del EXE que llama a la DLL.

    martes, 7 de octubre de 2014 20:30
  • ya tengo configurado el .confg con el nombre de la base de datos 

    Sí, pero ¿en qué .config has hecho eso? Si lo has hecho en el .config de la DLL, no funcionará. Tiene que hacerse en el .config del EXE que llama a la DLL.

    entiendo, pero yo tengo una solución con varios proyectos ej:

    Datos

    WebServices

    ESB.Portal

    En la capa de datos es donde estoy utilizando los metodos de la DLL Enterprise Library, pero el proyecto inicial que se ejecuta es ESB.Portal allí es donde tengo alojado el .config y allí es donde tengo el nombre de la base de datos la cual estoy haciendo la invocación.

    Es ese el correcto donde debo tener el .config ?



    miércoles, 8 de octubre de 2014 14:58
  • Sí, es correcto. Si la cadena de conexión está definida en el .config del ESB.Portal, y a partir de éste se termina llamando en última instancia a la DLL, entonces ahí es donde tiene que estar configurada la cadena de conexión.

    Por cierto, noto una pequeá discrepancia: en el mensaje de error dice que la que le falta es EsbExceptionDb, pero en el name de la cadena de conexión has puesto TesDb. No sé si es un simple ejemplo que pusiste para el mensaje del foro, pero si realmente el nombre de la cadena difiere del que está buscando la aplicación, entonces eso explicaría el fallo.

    miércoles, 8 de octubre de 2014 15:11
  • Sí, es correcto. Si la cadena de conexión está definida en el .config del ESB.Portal, y a partir de éste se termina llamando en última instancia a la DLL, entonces ahí es donde tiene que estar configurada la cadena de conexión.

    Por cierto, noto una pequeá discrepancia: en el mensaje de error dice que la que le falta es EsbExceptionDb, pero en el name de la cadena de conexión has puesto TesDb. No sé si es un simple ejemplo que pusiste para el mensaje del foro, pero si realmente el nombre de la cadena difiere del que está buscando la aplicación, entonces eso explicaría el fallo.

    Cuando puse el nombre de TestDb estaba haciendo una prueba y lo puse mal en el foro, pero la cadena de conexión tiene el nombre correcto a EsbExceptionDb en este momento, que es la base de datos que intento abrir y me sale el error.

    Un dato de mas, la aplicación funciona en otro pc. pero en el mio no quiere funcionar.


    miércoles, 8 de octubre de 2014 15:43
  • Buscando en Internet he encontrado un artículo que habla de un conflicto entre el Toolkit de ESB y la Enterprise Library, que hace que la Enterprise Library desprecie el .config y busque todos sus settings en la configuración de ESB. No sé si te estará pasando esto, pero te paso por si acaso el enlace al artículo:

    http://gloriousmonster.blogspot.co.uk/2009/06/esb-toolkit-20-has-surprise-for.html

    miércoles, 8 de octubre de 2014 16:09

  • Muchas gracias por el aporte Gracias!! encontré la solución allí, lo que hice fue poner esta linea en el web.config de mi app y listo!:

    <enterpriseLibrary.ConfigurationSource selectedSource="Local File Configuration Source">
        <sources>
          <add name="Local File Configuration Source" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35" filePath="web.config"/>
        </sources>
      </enterpriseLibrary.ConfigurationSource>

    miércoles, 8 de octubre de 2014 21:57