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 OLEDBatabase
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
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 OLEDBatabase
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