Error:
The following error typically occurs when your script attempts to perform an UPDATE or some other action that alters the information in the database.
========================================================================
Microsoft JET Database Engine error '80004005'
The Microsoft Jet database engine cannot open the file 'C:\Inetpub\vhost\YourSite\Databases\YourDatabase.mdb'.
It is already opened exclusively by another user, or you need permission to view its data.
/YourSite/YourDataAccessPage.asp, line 15
========================================================================
Solution:
The above error occurs because ADO(ActiveX Data Objects) is unable to write to the Microsoft Access database due to insufficient write/modify permissions, which can be easily fixed by granting read/write to IUSR_<machineName> and IWAM_<machineName>.
IUSR_<machineName> and IWAM_<machineName> come into focus when an anonymous web user needs to modify the Microsoft Access database & while doing so Jet creates an .ldb file to handle database locking. If the above mentioned 2 users don't have the necessary permissions, the lock file isn't created & ultimately the Microsoft Access database can't be modified.
To fix this problem,
1. Make sure that the MDB file itself isn't marked as read-only.
2. Right click the folder in which the *.mdb files belongs and choose the properties option and select the Security tab. Give read/write permissions to IUSR_<machineName> and IWAM_<machineName> users. If there is no such users listed in it, add those users for that folder.
Note:-
There is also an alternate solution for this issue. You can find a user called 'everyone', add this user for the folder in which *.mdb belongs and give read/write permissions. But this is not good because of security reasons.
Reference:
http://imar.spaanjaars.com/263/how-do-i-fix-asp-80004005-errors
Post a Comment