У меня есть веб-сайт ASP.NET, размещенный на IIS, который пытается запросить файл базы данных MSAccess, используя OdbcConnection
.
Когда я запускаю код в LinqPad (под своей учетной записью), он работает нормально:
var databaseFilePath = @"C:\...\database.accdb";
var conn = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="
+ databaseFilePath;
using (var odbc = new OdbcConnection(conn))
{
odbc.Open();
var cmd = new OdbcCommand(@"SELECT COUNT(*) FROM MyTable", odbc);
Console.WriteLine($"Count = {cmd.ExecuteScalar()}");
}
Однако на той же машине, когда я запускаю этот код из IIS (работает под идентификатором пула приложений), происходит сбой со следующим исключением:
Exception Type: System.Data.Odbc.OdbcException
Error message: ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.Odbc.OdbcConnection.Open()
Что мне нужно сделать, чтобы "разрешить" учетную запись удостоверения пула приложений для драйвера MSAccess (если это действительно проблема)?