3

我有一个 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()

我想用我在这里提供的信息找到问题可能很困难,但我不知道还能去哪里看或做其他测试,所以任何关于它可能是什么的想法或我可以做哪些测试来找出答案将不胜感激。

4

1 回答 1

0

我修好了它。不幸的是,我真的不知道怎么做:我删除了输出文件夹,重置了一些项目引用,重新配置了 SQL Express 上的一些东西,重新启动了机器等等。在某些时候,它又开始正常工作了。在连接时无法发现 OleDb 在 31 秒内所做的事情仍然让我很恼火,但问题现在已经消失(到目前为止)。

谢谢你的帮助。

于 2010-05-29T12:40:40.803 回答