• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 797
  • Last Modified:

Data Access Page Error

I am using Windows XP Professional with IIS 5.1 installed to host data access pages for an MS Access database.  I have read through endless pages of configuration documentation, but I always end up with this same problem.

When I point Internet Explorer to the data access page on my local web server, it displays the page with empty fields and says "Internet Client Error: Cannot Connect to Server."

I am totally stumpped here.

I have tried several different modifications of c:\winxp\msdfmap.ini that seemed to have no affect at all.

The UseRemoteProvider field has been set to True for all of my test pages.  If I try to load the pages from the HD it will properly display an error about that.. but for some reason the page will load from my server and then fail to databind.

Any help or ideas will be greatly appreciated!
0
miqrogroove
Asked:
miqrogroove
  • 9
  • 4
1 Solution
 
rquagliaCommented:
Hello!

just a thought: maybe your XP firewall blocks connection from your client?

HTH!
Roby
0
 
miqrogrooveAuthor Commented:
There are no firewalls on this system.  Regardless, I can reproduce this problem at localhost.

Interestingly, if I switch the server from port 8080 to port 80, then the error message changes to "Data provider failed while executing a provider command."

This could provide a few more hours of futile experimentation :)
0
 
rquagliaCommented:
I'm sorry!
Have you tried to post answer also in

Web Development  Web Servers  IIS

Maybe a IIS problem...

Good luck! ;-)

Roby
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
miqrogrooveAuthor Commented:
I have made some progress now.  By changing a registry key I am able to connect with the data access page.  However, I cannot find any way to make it prompt for the database user name and password.  It will connect only if these are stored in the file, and will not prompt for them if they are missing : (
0
 
miqrogrooveAuthor Commented:
Here is a related problem that I would be willing to give points for:  When I changed that registry key,

HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\SystemDB

then the RRAS service failed to load.  Changing it back to "system.mdb" has the affect of restoring the RRAS service, but then of course my data access pages will not load properly.  Is there any way to get around this?  Since that one registry key is the only way I have found to make my access pages databind it is important for this project.
0
 
rquagliaCommented:
Hi migrogroove!
maybe your Access is not updated with latest patch about Jet?

I've found this link on microsoft:

http://support.microsoft.com/default.aspx?scid=KB;en-us;q239114

HTH (again :) !

Roby
0
 
miqrogrooveAuthor Commented:
Thanks for the idea.  I am using Windows XP with Service Pack 1 and all of the system updates.  Therefore, the patch you mentioned is already installed.
0
 
rquagliaCommented:
I'm so sorry (sigh! :-< )
I read this on the link I give you:

( http://support.microsoft.com/default.aspx?scid=KB;en-us;q239114 )

"" Click the following link to download and install the correct version of Jet 4.0 SP6 on computers based on the language version of Windows XP that the computer is running.
http://windowsupdate.microsoft.com

On the Windows Update page, click Scan for updates. After the scan is completed, click Windows XP under Pick updates to install in the left pane. The link for the Jet 4.0 SP6 download is listed under Recommended Updates as "Q282010: Microsoft Jet 4.0 Service Pack 6 (Windows XP)" in the right pane. ""

... And I hoped that was the problem...
Roby

0
 
miqrogrooveAuthor Commented:
I have discovered a solution that, while imperfect, seems to allow IIS and RRAS to peacefully coexist.

The important discovery I made is that RRAS will load successfully if the SystemDB key points to an .mdw file that contains the Admin/no password combination.

Therefore, I have created two .mdw files.  The necessity for the second file arrises because MS Access will not prompt for a password if the Admin account has no password.  If the database is properly configured to deny access to the Admin account, then the .mdw configuration mentioned above would not allow any logins.

The first .mdw file is configured as usual.  It has the login user names and passwords, plus the Admin account has a randomized password and is denied all access to the database, and is not the owner of any database objects.  The Access Workgroup is set to the location of this file.

The second .mdw file is configured to contain only the login user name and password that will be used by IIS and the data access pages.  After this configuration the Admin password is deleted and the SystemDB key set to the location of this file.

It is important to remember that the account common to both .mdw files must have the same key/id string.

This is the best solution I have found so far.  If anyone has a solution that does not involve the registry hacks, please let me know.
0
 
1WilliamCommented:
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:
Delete question, refund points
Please leave any comments here within the next seven days.
 
PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!
 
1William
EE Cleanup Volunteer
0
 
miqrogrooveAuthor Commented:
Hi 1William.  The information I posted on March 10 may be valuable into the future for other Expert Exchange users.  Feel free to refund the points but do consider archiving this thread.

Thanks.
0
 
miqrogrooveAuthor Commented:
Regarding my second comment in this thread:

  Since I was never able to make the server prompt the user for a database user name and password, I ended up saving them to a file as an unappetizing compromize.  But today I came across a fascinating article about this problem at microsoft.com.  It does not have a publication date.  It only says Last Reviewed 7/28/2004

http://support.microsoft.com/default.aspx?kbid=840258

  I will attempt to implement this solution and then post my results!

-- Miqro
0
 
miqrogrooveAuthor Commented:
Also, this article points out the problem with the System Database path not being recognized from the Data Access Page Parameters.  Appearently, the syntax generated by the Access Page Design View is incorrect:

Jet OLEDB:System database=

The confusion described above involving registry hacks can be avoided by using this corrected syntax:

Extended Properties=Jet OLEDB:System database=


EE Staff please note that it may be necessary to change the accepted solution to this question.
0
 
miqrogrooveAuthor Commented:
I successfully implemented a login page using the instructions in Microsoft's KB article.  It leaves a lot to be desired, though.

Now that the MDW is properly connected, let's say I want to save a default user name and password anyway?  What about users who go to the DAP without a cookie?  Disabled cookies?  Need a logout page?

First of all, clean up that glaring bug in step #5:

If intValueLength=-1 then

That's just bozo code!  Replace it like so:

If intValueLength<1 then

While in there, wrap the script with an If statement:

If readCookie("pUserID") = "" Then
window.navigate("login.html")
Else


The suggested Authenticate.htm would be an obvious pain the side.  Here is a slightly better version I wrote for anyone who needs a starting point:

LOGIN.HTML

<HTML>
<HEAD>
<TITLE>Authenticate User</TITLE>
<SCRIPT language="VBScript">
document.cookie="test=test"
If len(document.cookie) = 0 Then
 MsgBox "Cookies must be enabled to logon successfully.  Please check your settings."
End If
Sub writeCookie(strVariableName, varVariableValue)
Document.Cookie = strVariableName & "=" & varVariableValue
End Sub
Function openDAP()
Dim varUserID
Dim varPWD
varUserID = document.all.txtUserID.value
varPWD = document.all.txtPWD.value
writeCookie "pUserID", varUserID
writeCookie "pPWD", varPWD
If len(document.cookie) = 0 Then
 MsgBox "Cookies must be enabled to logon successfully.  Please check your settings."
Else
 window.navigate("<Page To Show After Login>")
End If
openDAP = false
End Function
</SCRIPT>
</HEAD>
<BODY>
<FORM id="form1" onSubmit="return openDAP();" language="jscript">
<TABLE>
<TR>
<TD>User Name:</TD>
<TD><input type="text" name="txtUserID" size="20" value="<Default Username>"></TD>
</TR>
<TR>
<TD>Password:</TD>
<TD><input type="password" name="txtPWD" size="20" value="<Default Password>"></TD>
</TR>
</TABLE>
<P><input type="Submit" value="Database Login"
name="B2"></P>
</FORM>
</BODY>
</HTML>


And because users might not want other people to use their databases...

LOGOUT.HTML

<HTML>
<HEAD>
<TITLE>Logout</TITLE>
<SCRIPT language="VBScript">
Document.Cookie="pUserID="
Document.Cookie="pPWD="
window.navigate("./")
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>


Enjoy,

-- Miqro
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

  • 9
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now