WoF_Angel
WoF_Angel

Reputation: 2581

SQL Compact Edition 3.5 - Access to the database file is not allowed

I developed an application (100% local, no access to servers) using SQL Server Compact 3.5, and it works fine on my computer. However, when I deployed it on another computer, it shows this error:

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

I deployed on a Windows XP computer. It shows this error whenever I try to write on the database, however, it works when I read.

I did a test on a Windows 7 computer, and it worked 100%, except when the file was accessed through the homegroup (that is, local network), on which it failed on both read/write.

Platform: Windows 7, Visual Studio 2010, and .NET 4 Client Profile

Upvotes: 18

Views: 25358

Answers (9)

Bryan B
Bryan B

Reputation: 730

This would not be the typical cause, but I ran into this error message when my connection string had the incorrect path to the CE SDF file. Once I fixed that the error went away.

Upvotes: 0

Shakir Ali
Shakir Ali

Reputation: 55

Just run your application as administrator. I solved my problem using this.

Upvotes: -1

olleh
olleh

Reputation: 2073

The following solution worked for me:

"Program Files" in Windows is protected, so normal users cannot write there, your applications will probably work only with an administrator user.

Change the data folder path for your database to somewhere where all users have permission to write.

Upvotes: 0

Barkov
Barkov

Reputation: 1

You just need to make 'Server Side Includes" allowed under the IIS menu 'Web Services Extensions'

that fixed all my problems.

Upvotes: 0

Payman
Payman

Reputation: 448

Make sure you use |DataDirectory| in your connection string. Here is an example

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

I had the exact same problem ay you and I managed to fix it by adding the |DataDirectory| to my connection string.

Good luck.

Upvotes: 20

yardpenalty.com
yardpenalty.com

Reputation: 1244

Also you may want to check and see if your Application Pool is using Network Service (not Application Pool) and the Network Service Permissions are set to full control under your AppData folder. This was my problem awhile ago and I forgot how I did it, but this question reminded me of how I did it.

Upvotes: 0

Ghlouw
Ghlouw

Reputation: 1460

I also had this same problem. My solution was in TFS/SourceControl at the time when I deployed it and the sdf file was checked-in (ie read-only) and this caused me the exact same error as above. When I checked out the sdf file and deployed again, everything was fine. Thought I'd share that in case other TFS users experience the same issue.

Upvotes: 9

Whiz
Whiz

Reputation: 189

This worked for me: http://solutionevangelist.com/community/discussion/20/access-to-the-database-file-is-not-allowed.-system.data.sqlserverce.sqlceexception/p1

It it usually a permissions issue. I give "Everyone" full permissions to the .sdf file in App_Data, either via the GUI, or using

icacls database.sdf /grant Everyone:F

Upvotes: 16

Edwin de Koning
Edwin de Koning

Reputation: 14387

Here are a two other suggestions:

  • Try to run your Visual Studio as administrator
  • Check if the 'readonly' attribute is set on the sdf file

Upvotes: 4

Related Questions