SQL Compact Edition 3.5 - 不允许访问数据库文件

时间:2010-09-05 20:23:50

标签: c# .net sql sql-server-ce

我使用SQL Server Compact 3.5开发了一个应用程序(100%本地,无法访问服务器),它在我的计算机上运行正常。但是,当我在另一台计算机上部署它时,它显示以下错误:

Access to the database file is not allowed. [ File name = data\BDApepucCE.sdf ]

我部署在Windows XP计算机上。每当我尝试在数据库上写入时它都会显示此错误,但是,当我阅读时它会起作用。

我在Windows 7计算机上进行了测试,它的工作率为100%,除非通过家庭组(即本地网络)访问该文件,但在读取/写入时都失败了。

平台:Windows 7,Visual Studio 2010和.NET 4 Client Profile

9 个答案:

答案 0 :(得分:20)

确保在连接字符串中使用|DataDirectory|。 这是一个例子

connectionString="Data Source=|DataDirectory|MyDB.sdf"

我遇到了完全相同的问题,我通过添加| DataDirectory |来设法修复它到我的连接字符串。

祝你好运。

答案 1 :(得分:12)

这对我有用:http://solutionevangelist.com/community/discussion/20/access-to-the-database-file-is-not-allowed.-system.data.sqlserverce.sqlceexception/p1

  

它通常是权限问题。我通过GUI或使用

为App_Data中的.sdf文件赋予“Everyone”完全权限
icacls database.sdf /grant Everyone:F

答案 2 :(得分:9)

我也有同样的问题。我的解决方案是在我部署它并且sdf文件签入(即只读)时在TFS / SourceControl中,这导致了与上面完全相同的错误。当我检出sdf文件并再次部署时,一切都很好。我想我会分享一下,以防其他TFS用户遇到同样的问题。

答案 3 :(得分:4)

以下是另外两条建议:

  • 尝试以管理员身份运行Visual Studio
  • 检查sdf文件中是否设置了'readonly'属性

答案 4 :(得分:0)

此外,您可能需要检查并查看您的应用程序池是否正在使用网络服务(而不是应用程序池),并且网络服务权限在AppData文件夹下设置为完全控制。这是我前一段时间的问题而且我忘了我是怎么做到的,但是这个问题让我想起了我是怎么做到的。

答案 5 :(得分:0)

您只需要制作服务器端包含"在IIS菜单' Web服务扩展'

下允许

解决了我所有的问题。

答案 6 :(得分:0)

以下解决方案对我有用:

  Windows中的“程序文件”受到保护,因此普通用户无法写入   在那里,您的应用程序可能只适用于管理员   用户。

     

将数据库的数据文件夹路径更改为全部位置   用户有权写作。

答案 7 :(得分:0)

这不是典型的原因,但是当我的连接字符串有不正确的CE SDF文件路径时,我遇到了此错误消息。一旦我修复了错误就消失了。

答案 8 :(得分:-1)

只需以管理员身份运行您的应用程序我用这个解决了我的问题。