【发布时间】:2017-12-12 09:13:03
【问题描述】:
我正在尝试让我的 Windows 服务连接到位于 UNC 上的 MS Acces 数据库
private static void InsertData(string sql)
{
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" +
@"Data source=\\svr\Users\XXXX\XXXXX\db.accdb";
try
{
conn.Open();
OleDbCommand cmd = new OleDbCommand(sql, conn);
cmd.ExecuteNonQuery();
WriteToFile("Data saved successfuly...!");
}
catch (Exception ex)
{
WriteToFile("Failed due to: " + ex.Message);
}
finally
{
conn.Close();
}
}
这是我得到的错误 "Microsoft Access 数据库引擎无法打开或写入文件 '\svr\Users\XXXX\XXXXX\db.accdb'。它已被其他用户以独占方式打开,或者您需要权限才能查看和写入其数据。"
权限设置为域用户,读、写、修改等。数据库不被任何人打开。
我已经在控制台应用程序中尝试了确切的代码,它运行良好。 有什么想法吗?
【问题讨论】:
-
如果您将 UNC 路径映射到网络驱动器号,它是否有效?您对放置 db 的目录也有读/写权限吗?
-
我也尝试在服务中使用驱动器号,它说“X:\xxxx.xxxx 不是有效路径。确保路径名拼写正确并且您已连接到文件所在的服务器。”。我也有驱动器的权限。
标签: c# service ms-access-2010 unc