"System.Data.OleDb.OleDbException" error when you run an ASP.NET Web application


When you connect to a Microsoft Access database from a Microsoft ASP.NET application, you receive the following error message:
System.Data.OleDb.OleDbException: Unspecified error


The ASP.NET Web application that has the impersonation element set to
true in the Web.config file, and that has the authentication element set to
Windows in the Web.config file, runs under the impersonated account. The code in the ASP.NET Web application connects to an Access database. When the connection is made, the Microsoft Jet OLE DB creates temporary files in the Temp folder in the following directory:
Document and Settings\ServerName\ASPNET\Local settings
where ServerName is the name of your server.

If the impersonated user account does not have read/write permissions enabled in the Temp folder, you receive the error message that is mentioned in the "Symptoms" section.


To resolve this problem, enable read/write permissions for the impersonated user account in the Temp folder. To do this, follow these steps:
  1. In Windows Explorer, locate the following folder:
    Document settings\ServerName\ASPNET\Local settings\Temp
    where ServerName is the name of your server.
  2. Right-click the Temp folder, and then click Properties.
  3. In the Properties dialog box, click the
    Security tab.
  4. On the Security tab, click
    Add, and then type ServerName\UserAccountin the Select Users or Groups text box, where
    ServerName is the name of your server, and where UserAccount is the name of the impersonated account. Click
  5. Click to select the Read and the Write check boxes, and then click


This behavior is by design.

More Information

Steps to Reproduce the Behavior

  1. Create a new ASP.NET Web application. To do this, follow these steps:
    1. Start Microsoft Visual Studio .NET.
    2. Create a new Microsoft Visual C# .NET or a new Microsoft Visual Basic .NET ASP.NET Web Application. Name the project
    3. Write the code in the SampleApplication file to connect to the Access database.
  2. Set the authentication mode to Windows. To do this, follow these steps:
    1. In Solution Explorer, double-click Web.config.
    2. Under the <System.web> section, modify the
      authentication element as follows:
        <authentication mode="Windows" /> 
  3. Set the impersonation element to true. To do this, follow these steps:
    1. Under the <System.web> section, add the impersonationelement as follows:
      <identity impersonate="true" />
    2. Save, and then close the Web.config file.
  4. On the Build menu, click
    Build SampleApplication.
  5. Set the authentication method on the application. To do this, follow these steps:
    1. Click Start, and then click Run.
    2. In the
      Open text box, type inetmgr, and then click OK.
    3. In the Internet Information Servicesdialog box, click Default Web Site.
    4. Right-click SampleApplication, and then click Properties.
    5. In the SampleApplication Properties dialog box, click the Directory Security tab.
    6. Under Anonymous access and authentication control, click Edit.
    7. In the Authentication Methods dialog box, click to select the Anonymous Access check box. Make sure that the
      User name text box has the UserAccount value, where UserAccount is a Windows account. Click OK two times, and then close the
      Internet Information Services dialog box.
    8. Make sure that read/write permissions for UserAccount are not enabled in the following folder:
      Document settings\ServerName\ASPNET\Local Settings\Temp
    Note IIS uses the following authentication methods to authenticate against the ASP.NET Web application:
    • Anonymous Authentication: IIS uses the IIS anonymous user account (the default account is IUSR_computername).
    • Integrated Authentication: IIS uses the user account of the user who is currently logged on.
    • Basic Authentication: IIS uses the user-specified account.
  6. Run the application. To do this, type http://<ServerName>/SampleApplication/Webform1.aspx in the Address bar of the Web browser, and then click Go.

    You may see the error message that is mentioned in the "Symptoms" section.


For more information about ASP.NET impersonation, visit the following Microsoft Developer Network (MSDN) Web site:For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base:

301195 How to configure security for files and folders on a network (domain) in Windows 2000

316675 Cannot connect to Access database from ASP.NET


ID do Artigo: 825738 - Última Revisão: 23 de mar de 2009 - Revisão: 1