У меня есть приложение 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 Activity Monitor.
Если это поможет, вот исключение:
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()
Я полагаю, что найти проблему с информацией, которую я привожу здесь, может быть сложно, но я не знаю, где еще искать или какие другие тесты делать, поэтому любые идеи о том, что это может быть или какой тест я мог бы сделать выяснить это будет по достоинству.