En caso de que alguien tenía el problema.
Al montar la base de datos con una cadena de conexión que contiene AttachDBFile
con SQLEXPRESS
, me di cuenta de esta conexión era exclusivo de la aplicación ASP.NET que estaba utilizando la base de datos. La conexión bloqueó el acceso a todos los otros procesos en el nivel de archivo cuando se hizo con System.Data.SqlClient
como proveedor.
Con el fin de asegurar que la conexión sea compartible con otros procesos en lugar de utilizar bases de datos para especificar el nombre de base de datos en la cadena de conexión Ejemplo o conexión de cadena:
Data Source=.\SQLEXPRESS;DataBase=PlaCliGen;User ID=XXX;password=ZZZ; Connect Timeout=30
, donde PlaCliGen
es el nombre (o nombre lógico) mediante el cual el servidor SQLEXPRESS conoce la base de datos.
Al conectarse a la base de datos con AttachDBFile dando la ruta al archivo .mdf (namely : replacing DataBase = PlacliGen by AttachDBFile = c:\vs\placligen\app_data\placligen.mdf)
el archivo se conectó exclusivamente y ningún otro proceso podría conectarse a la base de datos.
ah bien, ahora lo entiendo: eliminé el parámetro UserInstance = true de la cadena de conexión y parece funcionar bien. ¿Y el parámetro AttachDbFileName? ¿Cuál es el peligro con eso? – frenchie
¿Por qué solo querría adjuntar la base de datos mientras su programa la está usando? Si adjunta la base de datos * a su servidor SQL *, puede acceder a ella a través de Management Studio u otros programas en cualquier momento. ¿Qué estás ganando al conectarlo solo en tiempo de ejecución mientras estás desarrollando activamente? Si se trata de uso de recursos, puede detener manualmente el servicio de SQL Server. –
No estaba seguro de lo que estaba haciendo el comando. En este momento, tengo esto: Data Source =. \ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ MySiteDB.mdf. ¿Cómo debería reescribirlo para evitar el archivo adjunto al tiempo de ejecución y, en su lugar, ir directamente al servidor SQL? Adjunté el archivo DB al servidor SQL adjuntándolo en Management Studio. ¿Es esto bueno? – frenchie