【问题标题】:OleDB connection only working when debuggingOleDB 连接仅在调试时工作
【发布时间】:2010-05-28 11:19:56
【问题描述】:

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

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

【问题讨论】:

  • 你是说当你不调试的时候,应用程序是从IIS运行的?
  • 不,它是一个 WinForms 应用程序。换句话说:如果我在 VS 中按 F5 就可以了。如果我在 Windows 资源管理器中双击 exe,它会失败。如果我设置 VS 来启动 exe 并附加调试器,它也会失败。
  • 我最好的猜测是你的并发连接用完了。 Express 只允许 5 我认为。如果您打开了 IDE 以及一两个其他工具(例如 Management Studio),您可能会达到 5 个。如果您打开了连接池之类的东西,可能是所有 5 个都绑定在某个地方?
  • @Cobusve:异常说,登录超时;它与并发连接有什么关系?
  • @Francesc:你检查数据库日志了吗? social.msdn.microsoft.com/forums/en-US/adodotnetdataproviders/…

标签: c# oledb sql-server-express oledbconnection oledbexception


【解决方案1】:

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

感谢您的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 2018-05-22
    • 1970-01-01
    • 2011-10-24
    • 2019-01-21
    相关资源
    最近更新 更多