在机器上运行一个程序。该程序循环访问oracle数据库做数据通信。发现这个程序经常在莫名奇妙的失踪了。程序界面消失了,任务管理器中也看不到进程。
在事件查看器中找到了下面一条日志:
事件类型: 错误 事件来源: .NET Runtime 事件种类: 无 事件 ID: 1026 日期: 2012-10-9 事件: 1:48:00 用户: N/A 计算机: D-14070 描述: 应用程序: Table2Table.exe Framework 版本: v4.0.30319 说明: 由于未经处理的异常,进程终止。 异常信息: System.AccessViolationException 堆栈: 在 System.Data.Common.UnsafeNativeMethods+ICommandText.SetCommandText(System.Guid ByRef, System.String) 在 System.Data.OleDb.OleDbCommand.InitializeCommand(System.Data.CommandBehavior, Boolean) 在 System.Data.OleDb.OleDbCommand.ExecuteCommand(System.Data.CommandBehavior, System.Object ByRef) 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(System.Data.CommandBehavior, System.String) 在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery() 在 Table2Table.TaskProcessT2T.Process(System.Object) 在 Table2Table.Task.Excute() 在 System.Threading.ThreadHelper.ThreadStart_Context(System.Object) 在 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 在 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 在 System.Threading.ThreadHelper.ThreadStart()
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
请问,这个问题如何解决
更换Oracle.DataAccess.dll试试,早就不用那个OleDb了,那个错误是非托管部分的错误,很难判断原因,也许是那个OldDb的BUG,反正用Oracle公司自带的OPD.NET是最佳选择。
我用OPD.Net试试看
难道你是不停的有reader的?
是的。在线程中死循环访问数据库
@fupei101011:
还有这样的需求