IIS / ODBC / user permission

Didier CLAPIER 0 Reputation points
2024-01-31T17:23:16.07+00:00

Hello,

With Windows server 2009 / IIS 10 / ODBC 64 / Classic ASP i experience a problem : We have an internat website (Intranet) for our company, In global.asa i open ODBC connection : Session_Start : Set Myconn = Server.CreateObject("ADODB.Connection") Myconn .ConnectionString = "ODBC;DSN=MyDSN;DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}" Myconn .Open

This is working perfectly when i navigate on this website, i'm a member of administrators group. My problem : when a domain user try to navigate the WAS rise a warning , saying the process terminate, and the web interface ask for user credential; when the user gives user/password it does not work , the only way to make it working it to give credential of an admin user. Strange behaviour : after rebooting the server or after iisreset, or after pool recycling, users cannot navigate until an administrator navigate once... it looks like the administrator open a pipe, and that pipe make the website working for standard user. After analysys the the WAS warning says that the process terminate because of a broken pipe, after debugging the MSADO15!CCONECNECTION::OPEN cause this process termination. This comes from MSADO15.DLL I checked process, and i can't see any ACCESS_DENIED error. I checked user permission on the server (DB, DB path, WWW path, MSADO15.DLL, ...) i can't find why a user can't open the ODBC connection for the first time. Any idea ? Thank you , Didier

Windows development | Internet Information Services
Microsoft 365 and Office | Access | Development
Microsoft 365 and Office | Access | For business | Windows
{count} votes

1 answer

Sort by: Most helpful
  1. MotoX80 36,291 Reputation points
    2024-02-06T13:12:48.33+00:00

    Trace the error with Process Monitor.

    https://learn.microsoft.com/en-us/sysinternals/downloads/procmon

    Do an iisreset to start clean. Start the procmon trace. Browse the site with a standard user. When the error occurs stop the trace. (It will capture lots of events.) Analyze the file and registry activity that w3wp.exe references. Look for "access denied". Do you see file I/O entries for the .mdb file?

    What entries do you see in the IIS and HTTP logs for that one request?

    C:\inetpub\logs C:\Windows\System32\LogFiles\HTTPERR

    If you still can't figure it out, enable failed request tracing and capture the error.

    https://www.bing.com/search?q=iis+failed+request+tracing


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.