У меня есть приложение C#, которое подключается к именованному экземпляру SQL Express на локальном компьютере с помощью OleDBConnection:
_connection = new OleDbConnection(_strConn);
_connection.Open();
_strConn is something like this: "Provider=sqloledb;Data Source=.\NAMEDINSTANCE;Initial Catalog=dbname;User Id=sa;Password=password;"
Если я отлаживаю приложение, соединение работает нормально. Если я запускаю приложение из проводника Windows (тот же отладочный компилятор), я получаю сообщение «OleDBException: время ожидания входа истекло» в строке Open() через 30 секунд. Странно то, что исключение происходит, даже если я подключаю отладчик к exe. Я вижу, что строка подключения верна, и все выглядит нормально. Я также не могу найти дополнительную информацию в журнале ошибок SQL Express или мониторе активности SQL.
Если это поможет, вот исключение:
System.Data.OleDb.OleDbException: Login timeout expired
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
Я предполагаю, что найти проблему с информацией, которую я здесь даю, может быть сложно, но я не знаю, где еще искать или какие другие тесты делать, поэтому любые идеи о том, что это может быть или какой тест я мог бы сделать, чтобы выяснить будет действительно оценен.