This is making my brain hurt - I hope someone has seen this behavior before.
I'm developing an intranet asp page form that retrieves info from an Access 2000 database, and depending on user input the response page either creates a new record or updates an existing one. Since I'm just in the development stage I put no security on the Access db. I composed the page on my Win2k workstation and tested it on a Win2k server running IIS 5.0.
I used Notepad to create a data link to get my connection string as follows (which is stored on a SSI page that both the form and response pages include):
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\{servername}\Inetpub\ schedule.mdb;Persist Security Info=False
After the usual hiccups I got the page working the way I wanted. So I gave the URL to a couple of users so they could check it out and see what they thought. After that, the response page no longer worked! It failed with the following error:
Microsoft JET Database Engine (0x80040E4D)
Cannot start your application. The workgroup information file is missing or opened exclusively by another user.
/scheduleresponse.asp, line 22 NOTE: Line 22 contains "conn.open ConnectionString,3,3"
Again, I had NOT yet set any security on the Access database! The page WAS working for me (a member of the Administrators group on our domain). Now it didn't work for anyone including me. Access is NOT installed on the IIS server, so there was never a system.mdw file there, yet it DID work! I can only assume that since the db was created on my workstation, it was referencing THAT system.mdw file even after it was moved to the web server, and the problem must have started when one of my demo users (who don't have rights to access my workstation files) tried to use it, causing authentication to fail...?
Obviously the database was looking for a .mdw file for security now, so I copied the one from my workstation to the same folder as the database file - but no joy. Again I used Notepad, created a .udl file, and established a data link that referenced the new security file. This yielded the following connection string:
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\{servername}\Inetpub\ schedule.mdb;Persist Security Info=False;Jet OLEDB:System database=\\{servername}\Inetpub\wwwroot\_private\system.mdw"
OK, that got rid of the missing file message, but now it was replaced with:
Microsoft JET Database Engine (0x80040E4D)
Not a valid account name or password.
/scheduleresponse.asp, line 22
Now remember, I STILL haven't invoked any Access security. So, I explicitly included the default user ID (Admin) and password (blank password) as follows:
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\{servername}\Inetpub\ schedule.mdb;Persist Security Info=False;Jet OLEDB:System database=\\{servername}\Inetpub\ & _
";user id=Admin;password="
I still get the same error message.
If I use the Notepad .udl file that generated the connection string, it connects successfully. If I open the db in Access, it does NOT prompt for user id and password, so obviously no security has been turned on in Access itself. It doesn't seem like it could be a problem with the connection string, because the form page uses the same SSI file to connect, and that works! It's the response page that won't (almost like the Admin user has read but not write priviledges, but I checked in "Security/User and Group Permissions" and everything is selected).
Does anyone have any suggestions or ideas???
Thanks for reading...
I'm developing an intranet asp page form that retrieves info from an Access 2000 database, and depending on user input the response page either creates a new record or updates an existing one. Since I'm just in the development stage I put no security on the Access db. I composed the page on my Win2k workstation and tested it on a Win2k server running IIS 5.0.
I used Notepad to create a data link to get my connection string as follows (which is stored on a SSI page that both the form and response pages include):
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\{servername}\Inetpub\ schedule.mdb;Persist Security Info=False
After the usual hiccups I got the page working the way I wanted. So I gave the URL to a couple of users so they could check it out and see what they thought. After that, the response page no longer worked! It failed with the following error:
Microsoft JET Database Engine (0x80040E4D)
Cannot start your application. The workgroup information file is missing or opened exclusively by another user.
/scheduleresponse.asp, line 22 NOTE: Line 22 contains "conn.open ConnectionString,3,3"
Again, I had NOT yet set any security on the Access database! The page WAS working for me (a member of the Administrators group on our domain). Now it didn't work for anyone including me. Access is NOT installed on the IIS server, so there was never a system.mdw file there, yet it DID work! I can only assume that since the db was created on my workstation, it was referencing THAT system.mdw file even after it was moved to the web server, and the problem must have started when one of my demo users (who don't have rights to access my workstation files) tried to use it, causing authentication to fail...?
Obviously the database was looking for a .mdw file for security now, so I copied the one from my workstation to the same folder as the database file - but no joy. Again I used Notepad, created a .udl file, and established a data link that referenced the new security file. This yielded the following connection string:
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\{servername}\Inetpub\ schedule.mdb;Persist Security Info=False;Jet OLEDB:System database=\\{servername}\Inetpub\wwwroot\_private\system.mdw"
OK, that got rid of the missing file message, but now it was replaced with:
Microsoft JET Database Engine (0x80040E4D)
Not a valid account name or password.
/scheduleresponse.asp, line 22
Now remember, I STILL haven't invoked any Access security. So, I explicitly included the default user ID (Admin) and password (blank password) as follows:
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\{servername}\Inetpub\ schedule.mdb;Persist Security Info=False;Jet OLEDB:System database=\\{servername}\Inetpub\ & _
";user id=Admin;password="
I still get the same error message.
If I use the Notepad .udl file that generated the connection string, it connects successfully. If I open the db in Access, it does NOT prompt for user id and password, so obviously no security has been turned on in Access itself. It doesn't seem like it could be a problem with the connection string, because the form page uses the same SSI file to connect, and that works! It's the response page that won't (almost like the Admin user has read but not write priviledges, but I checked in "Security/User and Group Permissions" and everything is selected).
Does anyone have any suggestions or ideas???
Thanks for reading...