你目前正处于脱机状态,正在等待 Internet 重新连接

FIX: 您可以收到一条错误消息后 x 64 计算机上安装了压缩的 SQL Server 版本 3.5 Service Pack 2 的 32 位版本运行基于 SQL Server 压缩 3.5 英寸的应用程序时

Extended support for SQL Server 2005 ends on April 12, 2016

If you are still running SQL Server 2005 after April 12, 2016, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 974247
症状
在 64 位计算机上 SQL Server 压缩 (压缩) 基于的应用程序可能会失败,使用以下两个症状之一:
症状 1
应用程序正试图加载的与该计算机上安装的版本不兼容的压缩版本。不正确的版本可能会导致应用程序不稳定和加载的压缩将被中止。

症状 2
应用程序无法加载 SQL Server 压缩对应于 ADO.NET 提供程序的本机组件。

以下是与这些问题的确切异常:

版本不匹配异常
ADO.NET 提供程序和本机的 SQL Server 压缩这可能会导致不正确的功能的二进制文件之间检测到的文件版本不匹配。 这可能是由于存在多个实例的不同版本的 SQL Server 压缩。 请安装 SQL Server 压缩的二进制文件匹配的版本的 [ADO.NET 提供程序文件版本 = XXXX,本机的二进制文件版本 = YYYY]

无法加载 ME dll 例外
无法加载 DLL sqlceme35.dll: 找不到该指定的模块。(从 HRESULT 异常: 0x8007007E)
原因
对压缩的 ADO.NET 提供程序 (System.Data.SqlServerCe.dll) 通常编程简洁的基于应用程序。此提供程序中的关闭与本机压缩组件进行通信。为了避免各种不一致,压缩的 ADO.NET 提供程序的某些版本可以与仅相同版本的精简的本机组件。以下是一些示例方案,其中该策略将会断开,这将导致前面提到的两种例外情况之一:

示例方案 1

安装 (这将安装 SQL Server 压缩 3.5 SP2 的 32 位版本) 的 SQL Server 2008 R2.Then 时运行私下部署 SQL Server 压缩 SP1,64-位应用程序时,,将它失败与版本不匹配"异常。

失败的原因

  • 安装 32 位版本的 SQL Server 压缩 3.5 SP2 时, 它将 ADO.NET 提供程序 (System.Data.SqlServerCe.dll) 的版本 3.5.8080 添加到全局程序集缓存 (GAC) 和 $ 本机 x86 组件放在 %计划 Files(x86) %文件夹下。
  • 运行 64 位应用程序的私有部署 SQL Server 压缩 SP1 时,的 ADO.NET 提供程序从 GAC (版本 3.5.8080) 加载,但是从应用程序文件夹是版本 3.5.5692.0 加载本机 64 位组件。
  • 没有不启用该策略为每一个版本不匹配。

示例方案 2

  • 在 64 位计算机上安装 SQL Server 压缩 3.5 SP1 x 86 的版本。
  • 然后,您安装 SQL Server 压缩 3.5 SP1 x64 版本。
  • 在同一计算机上下载和从 Web 安装 SQL Server 压缩 3.5 SP2 的 32 位版本。
  • 您运行一个 64 位应用程序,它使用 SQL Server 压缩 SP1 或 SP2。
  • 当您在运行应用程序时失败与无法加载 ME dll"异常。

失败的原因

  1. 安装 32 位版本的 SQL Server 压缩 3.5 SP2 x 86 SQL Server 压缩 3.5 sp2 的安装升级 SQL Server 压缩 3.5 SP1。这会导致正在从 x 64 安装不同的压缩的 x 86 安装。
  2. 在计算机上正在运行一个 64 位应用程序,它使用压缩 SP1 或 SP2,它也会在 GAC (版本 3.5.8080) 中加载的 ADO.NET 提供程序。但是,它找不到本机的二进制文件相同版本的系统上。因此,它将引发异常。

解决方案
时间任何给定点为 SQL Server 压缩的 64 位计算机的正确状态将如下所示:
  • x86 和 amd64 msi 安装。
  • x86 和 amd64 msi 是相同版本。

因此,如果您所面临类似的任何问题请确保计算机有两个 x86、 amd64 msi 的压缩已安装且它们是相同版本。万一他们不然后安装压缩 SP2 x86 和 x64 msi 从以下链接根据需要,请执行以下操作:
状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

属性

文章 ID:974247 - 上次审阅时间:11/03/2009 07:22:53 - 修订版本: 2.2

Microsoft SQL Server Compact 3.5

  • kbmt kbhotfixserver kbsurveynew kbqfe KB974247 KbMtzh
反馈