SQLite mantiene la base de datos bloqueada incluso después de cerrar la conexión

Estoy usando el proveedor System.Data.SQLite en una aplicación ASP.NET (framework 4.0). El problema con el que me estoy topando es que cuando INSERTO algo en una tabla en la base de datos SQLite, la base de datos se bloquea y el bloqueo no se libera incluso después de eliminar la conexión.

Cuando se intenta acceder al archivo, el error es: "El proceso no puede acceder al archivo 'catalog.sqlite' porque otro proceso lo está utilizando".

Mi código es bastante sencillo, abro la conexión, leo algunos datos de una base de datos SQLServer, inserto esos datos en SQLite (a través de SQLiteDataAdapter) y luego cierro la conexión y desecho todo solo para estar seguro. Pero aún así, recibo ese error cuando intento comprimir el archivo después de que se haya llenado con los datos.

He leído todo tipo de sugerencias aquí en StackOverflow, pero ninguna de ellas ha ayudado a resolver el problema (apagar el antivirus, cambiar el modelo de transacción, esperar unos segundos antes de comprimir el archivo, envolver todas las llamadas de inserción en una transacción, etc., pero ninguno ha ayudado a resolver este problema.

Tal vez haya algo específico en ASP.NET (¿el problema es el subprocesamiento múltiple? ¿Aunque lo estoy probando en una máquina de desarrollo donde solo hay una llamada a esa función y no hay concurrencia?)

Como nota al margen, traté de evitar DataTable y SQLiteDataAdapter y usar solo SQLiteCommand directamente y de esa manera funciona de forma encantadora. Por supuesto, puedo seguir construyendo mis consultas como cadenas en lugar de usar los adaptadores de datos, pero me resulta un poco incómodo cuando hay un marco de trabajo creado para hacer eso.

Respuestas a la pregunta(11)

Su respuesta a la pregunta