Jet database access problem from web service

G

Guest

Hello,

I have trouble connecting to Access database from my web service. Database
is located in a subdirectory of where service pages are. Code below produces
the following exception: "No error information available - E_NOINTERFACE".

[WebMethod(Description = "This method tests connection",
EnableSession = true,
TransactionOption=TransactionOption.RequiresNew)]
public bool TestConnection()
{
// Get connection string from web.config
string strConnection =
ConfigurationSettings.AppSettings.Get("ConnectionString");
// Here's actual connection string
// "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:\WebServiceLocation\Data\Data.mdb;Jet OLEDB:Database
Password=testpassword"
string username =
System.Security.Principal.WindowsIdentity.GetCurrent().Name;

if (strConnection == null)
return false;

OleDbConnection conn = new OleDbConnection(strConnection);
try
{
conn.Open();
return true;
}
catch(Exception exc)
{
return false;
}
finally
{
conn.Close();
}
}

I tried a number of permission changes. I granted ASPNET account full
permissions into the directory where database is located; I granted
IUSR_MachineName account the same set of permissions; I tried impersonating a
normal user who has full permissions over Data directory; tried having Asp
process run under System account by modifying Machine.config. None of these
work and I always get the E_NOINTERFACE. (I did check this code out of
regular WinForms app and it works just fine).

I also tried an Odbc connection with with the follwoing string:
@"Driver={Microsoft Access Driver
(*.mdb)};Dbq=c:\WebServiceLocation\Data\Data.mdb;Uid=Admin;Pwd=testpassword"
That gets me the following error:
"ERROR [25000] [Microsoft][ODBC Driver Manager] Failed to enlist on calling
object's transaction\r\nERROR [IM006] [Microsoft][ODBC Driver Manager]
Driver's SQLSetConnectAttr failed"

I am at a loss as to what to do. Any suggestions will be greatly appreciated.

Sonya
 
G

Guest

Hey folks,

Dunno if anyone cares, but I found the problem. In the Webmethod attribute,
there is a named parameter TransactionOption=TransactionOption.RequiresNew.
Well, seeing as Access doesn't suport transactions, it was killing even the
connection. Having removed that, everything works.

Sonya
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,754
Messages
2,569,525
Members
44,997
Latest member
mileyka

Latest Threads

Top