当在.net 框架应用程序中使用 ADO 和 ADO MD,您会收到意外的错误

文章翻译 文章翻译
文章编号: 840667 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

在 Microsoft.net 框架应用程序中,您可以使用 Microsoft ActiveX 数据对象 (ADO) 和 Microsoft ActiveX 数据对象 (多维) (ADO MD) 通过 COM 互操作。有时,负载过重,使用这些技术的.net 框架应用程序遇到意外的错误,如崩溃和其他间歇性的异常。这是特别常见与多线程应用程序 (如那些在 Microsoft ASP.NET 中运行。

原因

ADO 和 ADO MD 旨在.net 框架的版本之前,并打算在非托管组件对象模型 (COM) 环境中使用。虽然您可以通过 COM 互操作来访问这些技术,我们不建议执行此操作。这包括程序 ADO 主互操作集 Microsoft Visual Studio.net 中包括的使用。

因为它们将不在这种方式中使用,ADO 和 ADO MD 尚未经过很大程度测试互操作方案中。

解决方案

我们建议您使用 Microsoft ADO.NET 或 Microsoft ADOMD.NET 而不是通过互操作中使用经典 ADO 或 ADO MD。这些技术专门为提供.net 框架应用程序中的数据访问开发,而不需要添加的 COM 互操作的复杂性。

状态

将不会有任何以后的修复程序或纠正问题只发生在托管的.net 框架应用程序中的这些组件的增强功能。通常,这不会影响以后的修复程序或对 ADO 和 ADO MD.增强我们将继续使用 ADO 和 ADO MD 中包括 Microsoft Visual Basic 6.0 中、 Microsoft Visual c + +,和 Microsoft ASP 的非托管应用从出现的解决问题。

替代方法

要变通解决此问题,Microsoft ASP.NET 中,将 @ Page 指令的 ASPCompat 属性设置为 true。当此属性设置为 true 时,可在单线程单元 (STA) 线程上执行页。在 STA 线程上执行页将减少了意外的多线程访问的可能性,ADO 对象或 ADO MD 对象。

注意仅这作为临时的解决方法时使用 ADO.NET 或 ADOMD.NET 迁移代码。

使用经典 ADO 的.net 框架应用程序必须使用 Visual Studio.net 中包括 ADO 主 Interop 程序集。此替代方法可能会减少一些问题。但是,它不可能会阻止所有问题。作为一个长期的解决方案,请不要使用此替代方法。

参考

ADO.NET 提供 Microsoft.net 框架的一部分。有关.net 框架的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站:
http://msdn2.microsoft.com/en-us/netframework/default.aspx
以下文件是可从 Microsoft 下载中心下载:
收起这个图片展开这个图片
Download
Download the ADOMD.NET package now.有关如何下载 Microsoft 支持文件的其他信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
119591如何从联机服务获得 Microsoft 支持文件
Microsoft 扫描此文件的病毒。Microsoft 使用该文件已过帐的日期上获得的最新病毒检测软件。该文件存储在安全性得到增强的服务器,这有助于防止未经授权的情况下对其进行更改文件上。

属性

文章编号: 840667 - 最后修改: 2006年12月27日 - 修订: 1.4
这篇文章中的信息适用于:
  • Microsoft ActiveX Data Objects 2.7
  • Microsoft SQL Server 2000 Analysis Services
关键字:?
kbmt kbtshoot kbprb kbinfo KB840667 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 840667
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com