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

不能在 SQL Server 2008 R2 或 SQL Server 2008年中的 64 位模式下运行的 SSIS 包

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 2853715
症状
假定您在 Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2008年中创建 Microsoft SQL Server 集成服务 (SSI) 包。当您尝试运行该程序包,在 64 位模式下时,您会发现您无法运行该程序包。此外,您可能会收到一个或多个以下错误消息,具体取决于任务或包中的组件:
  • 该程序包包含 ADO.Net 源:

    错误:时间戳>
    代码: 0xC0047062
    资料来源: 数据流动任务 ADO NET 源 [1]
    说明: System.InvalidCastException: 指定的强制转换无效。
    在 Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.GetSqlCommand()
    在 Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.Validate()
    在 Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostValidate (IDTSManagedComponentWrapper100 包装)
    结束错误
  • 该程序包包含 XML 源:

    [XML 源 [1]]错误:"组件"XML 源"(1)"缺少必需的属性"AccessMode"。该对象必须具有指定的自定义属性。
    [SSIS。管道] 错误:"组件"XML 源"(1)"验证失败,并返回验证状态"VS_ISCORRUPT"。
  • 该程序包包含一个发送邮件任务:

    错误:时间戳>
    代码: 0xC0014005
    资料来源:
    说明: 指定为连接管理器"SMTP 连接管理器"连接类型"SMTP"无法识别为有效的连接管理器类型。当试图创建的连接管理器的连接类型时,将返回此错误。请检查连接类型名称的拼写。
    结束错误
注意在 32 位模式下运行包时,包将成功运行。
原因
因为 SSIS 任务或组件使用的特定 Microsoft.NET Framework 程序集的本机 64 位图像已损坏,就会出现问题。例如:

  • 对于一个 ADO.NET 源,.NET Framework 程序集是 Microsoft.SqlServer.ADONETSrc.dll。因此,Microsoft.SqlServer.ADONETSrc.ni.dll 的本机映像损坏。
  • 对于 XML 源,.NET Framework 程序集是 Microsoft.SqlServer.XMLSrc.dll。因此,Microsoft.SqlServer.XMLSrc.ni.dll 的本机映像损坏。
  • 对于 SMTP 连接,.NET Framework 程序集是 Microsoft.SqlServer.SendMailTask.dll。因此,Microsoft.SqlServer.SendMailTask.ni.dll 的本机映像损坏。
解决方案
若要解决此问题,请使用下列方法之一:

  • 方法 1

    卸载本机程序集,并使用,然后重新安装本机程序集 ngen 格式 命令。

    要卸载并重新安装 Microsoft.SqlServer.ADONETSrc.dll 本机程序集图像,请按照下列步骤操作:
    1. 通过使用类似于以下命令卸载本机程序集图像:
      ngen uninstall "Microsoft.SqlServer.ADONETSrc, Version=10.0.0.0"
    2. 显示本机程序集图像信息,以确认该本机映像不存在,请:
      ngen display "Microsoft.SqlServer.ADONETSrc, Version=10.0.0.0"
    3. 通过使用类似于下面的命令来安装本机程序集图像:
      ngen install "Microsoft.SqlServer.ADONETSrc, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
    4. 显示本机映像的信息,以确认已安装程序的本机映像:
      ngen display "Microsoft.SqlServer.ADONETSrc, Version=10.0.0.0"
  • 方法 2
    出现错误的计算机上,重新安装 SQL Server Integration Services。

更多信息
有关.NET Framework 程序集的本机映像的详细信息,请访问以下 Microsoft 开发人员网络 (MSDN) 的博客网站:

本机映像生成器 (Ngen.exe) 有关的详细信息,请访问以下 MSDN 网站:注意Ngen.exe 是 Microsoft Visual Studio 命令行工具的一部分。您必须选择正确的平台。例如,您必须选择 64 位或 32 位平台。在计算机上对其不具有安装 Visual Studio,您可以从开发计算机,必须在其安装的 Visual Studio 复制相应的 Ngen.exe 文件。或者,您可以安装通过使用 Ngen.exeSDK Windows.

状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

警告:本文已自动翻译

属性

文章 ID:2853715 - 上次审阅时间:06/07/2013 00:33:00 - 修订版本: 1.0

Microsoft SQL Server 2008 Integration Services, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 R2 Integration Services, Microsoft SQL Server 2008 R2 Standard

  • kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB2853715 KbMtzh
反馈