SQL Server Compact 3.5 版数据库访问被拒绝
Posted
技术标签:
【中文标题】SQL Server Compact 3.5 版数据库访问被拒绝【英文标题】:SQL Server Compact edition 3.5 database acess is denied 【发布时间】:2016-06-28 13:28:11 【问题描述】:我用 C# 开发了一个带有 Microsoft SQL Server Compact Edition 3.5 的桌面应用程序。
当我从解决方案文件夹(bin\release
或 debug
)运行 .exe
文件时,它工作正常,但是当我尝试通过创建其设置来部署它时,它显示未处理的异常:
您无权访问 CustomersDB.sdf 文件。
注意没有路径错误是正确的。
string lokasifile = Environment.CurrentDirectory + "\\CustomersDB.sdf";
string stringkoneksi = "Data Source = \"" + lokasifile + "\"";
SqlCeConnection koneksi = new SqlCeConnection(stringkoneksi);
koneksi.Open();
【问题讨论】:
当我看到权限错误时,我立即想到以管理员身份运行它或将您的文件移动到其他地方。不确定它是否会起作用,但毕竟尝试没有什么不好的......:D 在应用程序池中运行网站的账号没有sdf文件的权限。授予它对该文件的权限。或者,该文件在您认为的位置不存在。无论如何,您应该使用 App_Data 和 |DataDirectory|。如果你这样做了,它会一直按预期工作,不用担心。 SQL CE 不允许同时连接多个并发连接。 【参考方案1】:SecurityException
这没什么,只是调用者没有适当的权限。 Environment.CurrentDirectory Property
try
//Call Path here you will get to what the exactly error is
catch (Exception ex)
if (ex is DirectoryNotFoundException|| ex is IOException|| ex is SecurityException)
//Your handling here
else
throw;
【讨论】:
目录存在,文件存在,路径正确,问题只是访问被拒绝。 在属性中授予该文件所需的权限 那是“如何设置权限”的问题 右键单击要为其设置权限的文件或文件夹,单击“属性”,然后单击“安全”选项卡。单击编辑打开以上是关于SQL Server Compact 3.5 版数据库访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
sql server compact 3.5 和智能设备项目的问题
SQL Server Compact 3.5 版数据库访问被拒绝
如果存在可在 SQL Server 2005 和 SQL Server Compact 3.5 中使用的索引,则删除该索引的脚本
私下部署 sql server compact 3.5 sp2 时出错