使用.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后端。)
谢谢。
答案 0 :(得分:3)
在找出此问题的解决方案或更多稳定的解决方法方面是否有任何进展?
我在ASP.NET应用程序中有类似的问题,阅读Excel文件。它仅在生产环境中可见,许多用户尝试在服务器端处理不同的XLS文件。在晚上回收IIS服务后,大约有200个挂起JET引擎的请求(打开excel)。问题是所有后续尝试都失败了,因此重试逻辑无济于事。只有IIS重置才能解决问题。
从调查结果来看,我有几个选择:
有什么想法吗?
答案 1 :(得分:2)
我遇到了同样的问题。仅回收IIS中的应用程序池对我有用。
答案 2 :(得分:1)
我编写了示例测试应用程序 - 问题是由.NET System.Data.OleDb内部的某个错误引起的。
测试VS2008 SP1解决方案发布在此处:System.Data.OleDb bug demonstration sample.