Jet engine 4.0 and .Net framework

  • Thread starter Thread starter Troy
  • Start date Start date
T

Troy

We recently installed the .Net framework on a windows 2000 server.
Shortly after that we experienced intermitant problems running a web
based program that accesses an Access 2002 database.

The intranet .asp program works, but as soon as it tries to access the
database for normal users, it gives us an "unspecified error" and that
it can't access the data base.

As the administrator, I found my access was relatively stable. Anyone
else though gets the errors.

Are there known issues with .NET framework and the Jet engine?

Is there a service patch I could run that may fix this or do I need to
uninstall the .NET and hope things go back to normal?

Thanks.
T.
 
I'm relatively new to .Net and I'm having similar problems - does restarting
server solve correct the problem? I have another post to this forum looking
for information on this issue and so far it's sitting there unanswered.

I did find some improvement in my situation (error occurred more
intermittently) when I added the iuser_machinename account in the security
tab of the properties of the c:\documents and settings\machinename\local
settings\temp folder - apparantly asp.net stores a lot of temporary files
there. This files get cleared on a server restart so I'm thinking the issue
is something to do with these.

I've also read a lot of posts on the Brinkster help forum from users that
experienced this issue - if there are any of those users reading this it
would be great to hear your thoughts and if there has been any progress
resolving the issue there.

Regards,

Joe
 
I use the Jet engine with the Net v1.0 and 1.1 framework in Win2k server
without any problems.
Where are you getting the "unspecified error" ? Or what is reporting such
error? It's not much to go on.

For starters, do have write access writes, virtual and NTFS for the access
mdb file?
 
Hi Peter,

Thanks for taking the time to respond.

If it was a permission issue on the database then surely it wouldn't be just
an intermittent error. I'm using Jet 4.0, and can replicate the error using
Access 2000 and Access 2002, win2k server and xp pro.

As for when my error occurs, I've seperated out the data access tier to an
assembly with a number of classes defining a number of functions returning
datasets or datareaders depending on my needs. I am closing all connections
at the end of each function/subroutine in my classes and explicitly
disposing of the returned datareaders/datasets within my business logic
tier.

One thing I have noticed is that the majority of errors occur when I use
forms authentication which uses a couple of tables from the database for
users and their roles. The errors occur in random database transactions so
it's difficult to be more specific. I do have impersonation set to false.

Here's the connection string I'm using:
Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=c:\inetpub\wwwroot\sitename\resources\data\data.mdb;Jet
OLEDB:Database Password=password"

and here's the data access assembly code:
(the custusercontrol class simply grabs the connection string from the web
config file)

'##################### DLL to store data access classes for site
###################

imports system
imports system.data
imports System.Data.OleDb
imports hypertyper
Namespace HyperTyper
'###########################################################################
##########
'############### Class to handle mailing list interactions with database
#############
'###########################################################################
##########
public class handle_maillist : inherits custusercontrol
'########## function to check if email address is already in the database
############
public function doesMailExist(ByVal thisemail As String) As Boolean

dim cusCtl as custusercontrol = new custusercontrol
dim connectionString As String = cusCtl.connection_string

Dim dbConnection As System.Data.IDbConnection = New
System.Data.OleDb.OleDbConnection(connectionString)

Dim queryString As String = "SELECT [mailing_list].* FROM
[mailing_list] WHERE ([mailing_list].(e-mail address removed)
 
Joe,

My recommendation to you is to use structured exception handling present in
VB.NET. I highly recommend using this language feature.

I recommend writing code to dump the exception's text into a log file in the
catch statement. From there you will be able to pin-point the error. It's
definitely worth the time invested to implement, which is really not much in
light of the time troubleshooting errors after they occur.

Likewise, I would have the database connection closing and destruction
performed in the finally statement to ensure that it does in fact close
during normal operation or a run time error. Ensuring db connections,
particularly for file based MS Access, is most important and now with
structured exception handling being included with VB, to that end it is of
great fail-safe benefit.

Good luck.
 
Back
Top