【问题标题】:SQL Server Compact edition 3.5 database acess is deniedSQL Server Compact 3.5 版数据库访问被拒绝
【发布时间】:2016-06-28 13:28:11
【问题描述】:

我用 C# 开发了一个带有 Microsoft SQL Server Compact Edition 3.5 的桌面应用程序。

当我从解决方案文件夹(bin\releasedebug)运行 .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 不允许同时连接多个并发连接。

标签: c# error-handling sql-server-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;
     }
}

【讨论】:

  • 目录存在,文件存在,路径正确,问题只是访问被拒绝。
  • 在属性中授予该文件所需的权限
  • 那是“如何设置权限”的问题
  • 右键单击要为其设置权限的文件或文件夹,单击“属性”,然后单击“安全”选项卡。单击编辑打开 的权限对话框。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-18
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2020-12-07
  • 2016-03-02
相关资源
最近更新 更多