我想发送一个文件流(一个SQLite数据库文件)。我得到了:
ASP.NET Core中的Sqlite3面向System.IO.IOException:该进程无法访问该文件,因为它正被另一个进程使用
private void UpdateTestCaseDbFiles(string dnFile)
{
string strConn = @"Data Source=" + dnFile;
SQLiteConnectionStringBuilder builder = new SQLiteConnectionStringBuilder(strConn);
builder.Pooling = false;
SQLiteConnection conn = new SQLiteConnection(builder.ConnectionString);
conn.Open();
conn.Close();
conn.Dispose();
SQLiteConnection.ClearPool(conn);
SQLiteConnection.ClearAllPools();
}
字符串
根据this,我把禁用,但它不工作。调用函数后,我发送文件流:
FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read); --exception.
return File(fileStream, "application/octet-stream", fileName);
型
1条答案
按热度按时间2cmtqfgy1#
一种解决方法可能是首先在应用程序中进行数据库备份,然后在创建流时使用该备份文件。备份文件将不处于锁定状态。
您可以使用此方法创建备份文件:
字符串
然后,如果您愿意,可以删除新创建的备份文件。