我有一个 C# 应用程序,它使用 OleDBConnection 连接到本地计算机上的命名 SQL Express 实例:
_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 资源管理器(相同的调试编译)运行应用程序,我会在 30 秒后在 Open() 行中收到“ OleDBException: Login timeout expired ”。奇怪的是,即使我将调试器附加到 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()
我想用我在这里提供的信息找到问题可能很困难,但我不知道还能去哪里看或做其他测试,所以任何关于它可能是什么的想法或我可以做哪些测试来找出答案将不胜感激。