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

文章翻译 文章翻译
文章编号: 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) 的博客网站:
引入的.NET Framework 程序集的本机映像加载

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

状态

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

属性

文章编号: 2853715 - 最后修改: 2013年6月7日 - 修订: 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
机器翻译
重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。
点击这里察看该文章的英文版: 2853715
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,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