.net - EOF BOF 不一致.. 异常甚至 Recordset 的 RecordCount 也不止一个,仅在七台机器上的一台机器上
问题描述
我们有一个使用 .Net 4.7 作为 WebAPI 的应用程序,一些关键的业务逻辑在 VB6-COM 中。
ADODB 互操作 DLL 用于将记录集传递给 COM 对象以执行进一步的业务逻辑。
使用 SQL Server 2012R2。
下面是C#代码
Recordset recordSet;
recordSet = metaData.GetMetadata();
....
....
//This method adds two rows in iteration
FillDefaultTwoRows(recordSet);
// COM object processes the recordset and this error out with EOF BOF
// even after having minimum one row in it.
dataManager.Process(recordSet);
在调用之前,dataManager.Process(recordSet);
如果我们调用recordSet.MoveFirst()
应用程序,请不要使用 EOF 出错,并且 BOF 是真的异常,否则它总是抛出 EOF BOF 是真的。
令人惊讶的是,七台机器中只有一台出现异常,我们检查 .net 版本、Windows 更新、IIS 中的工作池设置都相同。两台机器的连接字符串保持不变,ADODB、ADO 和 VBVM 版本都相同。
相同的代码部署在两台机器上,这是每台机器的日志
机器 A:收到的 ADODB.Recordset 有 BOF=False 和 EOF=False
机器 B:收到的 ADODB.Recordset 有 BOF=False 和 EOF=True
机器 B 面临异常,而机器 A 没有。
我们最大的问题是什么让这个记录位置被重置?
是否需要任何系统级别/全局配置或设置来解决此异常而无需更改代码?
解决方案
推荐阅读
- asp.net - 在 Autofac 容器的新实例中使用现有的 IContainer
- python - 如何在 AWS Lambda 中将浮点值作为输入?
- api - SharePoint REST API GetFileByServerRelativeUrl 不起作用
- c++ - 有没有一种方法可以根据不同的变量重新计算和方程?
- node.js - Vogels:ValidationException:提供的关键元素与架构不匹配
- html - HTML 输入类型日期 fromat
- webrtc - 媒体源扩展 Javascript API 相对于 WebRTC。一些问题
- python-3.x - 使用 Python 在两张 Excel 之间进行关联
- xml - XML 部分响应与 Wildfly/Primefaces 上的货币符号中断
- java - Firestore 事件监听器 onEvent 是否被依次调用?