System.Data.OleDb.OleDbConnectionInternal..ctor:未指定的错误

时间:2010-10-29 09:22:07

标签: c# .net oledb oledbconnection

使用.mdb文件作为后端运行多线程(.NET Framework 3.5 SP1 WinForms)桌面应用程序几个小时(约6小时Win7 64位,~24小时WinXP)后,我收到以下运行时错误:

  

例外 - > 未指定错误

     

StackTrace - >

     

在   System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString   constr,OleDbConnection连接)
  在   System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions   options,Object poolGroupProviderInfo,   DbConnectionPool池,DbConnection   owningObject)

     

在   System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(的DbConnection   owningConnection,   DbConnectionPoolGroup poolGroup)

     

在   System.Data.ProviderBase.DbConnectionFactory.GetConnection(的DbConnection   owningConnection)

     

在   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(的DbConnection   outerConnection,DbConnectionFactory   connectionFactory的)

     

在   System.Data.OleDb.OleDbConnection.Open()

     

在   NetworkManager.SearchInputFileHandler.GetInputRows(SearchProgramTypeEnumeration   programType,Int32 startRowNum,Int32   rowsQty,Boolean setupInProgress,   Boolean filterOutUninitializedRows)

看起来这是一个OleDbProvider错误。

您是否见过/经历过类似的事情?

上下文:

(1)我专门使用

  

使用(OleDbConnection cnn = new OleDbConnection(“{{mymdbConnectionStringHere}}”)){

     

cnn.Open();

     

...

     

}

(2)我在一些select SQL表达式中使用IN子句指向外部MDB表。

我猜问题是由案例(2)引起的。虽然这仍然是一个假设来检查(我的应用程序的核心代码中需要一些代码修复,我现在考虑是值得修复的,或者我应该更好地切换到MS SQL后端。)

谢谢。

3 个答案:

答案 0 :(得分:3)

在找出此问题的解决方案或更多稳定的解决方法方面是否有任何进展?

我在ASP.NET应用程序中有类似的问题,阅读Excel文件。它仅在生产环境中可见,许多用户尝试在服务器端处理不同的XLS文件。在晚上回收IIS服务后,大约有200个挂起JET引擎的请求(打开excel)。问题是所有后续尝试都失败了,因此重试逻辑无济于事。只有IIS重置才能解决问题。

从调查结果来看,我有几个选择:

  1. 切换到其他库以读取XLS文件:    Excel OLE自动化 - 要求在服务器上安装Excel,并且有许多请求会创建许多不可接受的Excel进程实例。    第三方图书馆 - 这些是免费的吗?
  2. 将excel处理移至单独的进程。使用XML格式交换其他格式的数据。
  3. 使用某种智能处理来控制OLEDB的打开和关闭次数。
  4. 有什么想法吗?

答案 1 :(得分:2)

我遇到了同样的问题。仅回收IIS中的应用程序池对我有用。

答案 2 :(得分:1)

我编写了示例测试应用程序 - 问题是由.NET System.Data.OleDb内部的某个错误引起的。

测试VS2008 SP1解决方案发布在此处:System.Data.OleDb bug demonstration sample.