我几乎每天都使用下面的代码打开一个位于网络计算机上一年多的 SQLite 数据库文件。今天早上突然,我无法以编程方式打开文件。
private Boolean Connect(String strPathFile)
{
// Initialize the connection object.
this.DbConnection = null;
try
{
// DATABASE: Create the connection string and set the settings.
String strConnection = @"Data Source=" + strPathFile + @";Version=3;";
// DATABASE: Connect to the database.
this.DbConnection = new SQLiteConnection(strConnection);
this.DbConnection.Open();
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return false;
}
该文件是格式为“\Server\ShareName\FileName.db”(减去双引号)的网络资源。
这是有趣的事情。SQLite 管理员打开网络数据库文件没有问题,没有,并且重复。我也可以在本地打开文件。我将文件复制到本地驱动器并简单地更改了 Visual Studio 2012 (VS2012) 中的路径。
服务器看起来不错。自从我上次检查它以来,它在某个时候经历了重新启动。我认为是 Microsoft 更新。文件资源管理器浏览文件夹没有问题,正如我所说,SQLite 管理员可以打开网络文件。
我再次检查了权限,每个人都可以完全控制,服务器的用户也可以完全控制安全权限和共享权限。我检查了文件夹和文件,权限是一样的。我也期待,因为 SQLite 管理员可以打开该文件。服务器没有设置防火墙、Windows 防火墙或其他。我今天早上也重新检查了。同样,SQLite 管理员会抱怨这一点。
我通过使用文件资源管理器在网络驱动器上复制文件来验证写作。那没有问题。
服务器是 Windows Server 2003。我使用的是 Windows 7 Professional 64 位。
我也尝试以只读模式打开数据库,但也失败了。我期待这种行为。SQLite 管理员仍然可以很好地工作。
我尝试了各种其他连接字符串,包括 SQLiteConnectionStringBuilder() 只是为了看看会发生什么,条条大路通罗马,即:
System.Data.SQLite.SQLiteException occurred
HResult=-2147467259
Message=unable to open database file
Source=System.Data.SQLite
ErrorCode=14
StackTrace:
at System.Data.SQLite.SQLite3.Open(String strFilename, SQLiteConnectionFlags connectionFlags, SQLiteOpenFlagsEnum openFlags, Int32 maxPoolSize, Boolean usePool)
at System.Data.SQLite.SQLiteConnection.Open()
at SQL.cSQL.Connect(String strPathFile) in C:\<Path to source file>:line 367
InnerException:
想法?