OleDbException (0x80004005): Unspecified error

K

Keith

Using .NET Framework 1.1, on a security hardened Windows 2000 server,
IIS5......

We are getting the following error:-

OleDbException (0x80004005): Unspecified error (no other information
available when looking at the other error properties).

when attempting to connect to an Access 2002 Database, from an ASP.NET
application, configured to use an impersonation account (the web anonymous
account) which has full access rights to the database file and its
directory.

We do not get any error when:-
a) Using Classic ASP and ADO (same credentials, same web application)
b) With ASP.NET/ADO.NET when Impersonation is turned off
c) With ASP.NET/ADO.NET with Impersonation, and the impersonator account has
Adminstrator privileges.
d) With ASP.NET/ADO.NET talking to a SQL Server Database (using the SQL
Server Provider).

Checking around the Internet, I see I am not the only person getting this
error under what appear to be the same circumstances. I cannot find anything
in the Knowledge Base relating to this issue.

So this is evidently a permissions issue, so how do I go about trying to
determine where the problem lies? For instance, is there any sort of
detailed logging or tracing which can be turned on anywhere?

Keith
 
H

Hussein Abuthuraya[MSFT]

Keith,

The impersonator account doesn't have sufficient permissions to:

- The folder where the mdb file resides
- The Temp folder where Jet creates temp files.

The best thing to know which resource getting "Access Denied" is to use FileMon from Sysinternals.com. To use that tool:
- Start FileMon.EXE without filter.
- Execute the App till you see the error
- Stop capturing FileMon.
- Scroll to the top of the frames.
- Search for "Access Denied"

It should be easy to see which resource gets that error.


Thanks,
Hussein Abuthuraya
Microsoft Developer Support

This posting is provided "AS IS" with no warranties, and confers no rights.

Are you secure? For information about the Microsoft Strategic Technology Protection Program and to order your FREE Security Tool Kit, please visit
http://www.microsoft.com/security.
 
K

Keith

Thanks Hussein for the tip about FileMon.

One of my Colleagues later found the Knowledge Base article which fixed the
connection to the Access Database issue:-

http://support.microsoft.com/default.aspx?scid=kb;en-us;827190&Product=aspne
t

This article is not listed on a search for "Unspecified Error" yet is does
mention "Unspecified Error" in the article. In our case, we got the error
because it is Net Framework 1.1, and the impersonation account needed rights
to the Temp folder used by ASPNET in Framework 1.1, which is:-
:\Document and settings\ServerName\ASPNET\local settings folder etc.
Once we gave it the necessary rights, we could connect to the Access
database.

Now that the Access Database issue is resolved, we get an "Impersonation
Failure" message when trying to use an Index Server Catalog through ado.net
(but not through Classic ADO). I think this is because of our security
hardening - it is not the issue reported in Knowledge Base Article 323293
because we already run Service Pack 4, so this looks like a job for FileMon
to help us with.

Keith


Hussein Abuthuraya said:
Keith,

The impersonator account doesn't have sufficient permissions to:

- The folder where the mdb file resides
- The Temp folder where Jet creates temp files.

The best thing to know which resource getting "Access Denied" is to use
FileMon from Sysinternals.com. To use that tool:
- Start FileMon.EXE without filter.
- Execute the App till you see the error
- Stop capturing FileMon.
- Scroll to the top of the frames.
- Search for "Access Denied"

It should be easy to see which resource gets that error.


Thanks,
Hussein Abuthuraya
Microsoft Developer Support

This posting is provided "AS IS" with no warranties, and confers no rights.

Are you secure? For information about the Microsoft Strategic Technology
Protection Program and to order your FREE Security Tool Kit, please visit
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top