您可能无法执行脚本任务或脚本组件包含 SQL Server 2005 集成服务包

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

本文内容

症状

在 Microsoft SQL Server 2005,您可能无法执行包含脚本任务或脚本组件的 SQL Server 2005 集成服务 (SSIS) 包。此外,脚本可能无法正确运行当您尝试编辑该脚本。在运行下列操作系统之一的计算机上可能会发生此问题:
  • Windows Vista
  • 在 Windows 操作系统,其中包含了在 Microsoft.net Framework 2.0 的修复比生成 2.0.50727.832 安装更高版本的
概述如何这些组件进行交互操作,请参阅"更多信息"一节。

例如对于如果满足下列条件,则会出现此问题:
  • 在一台基于 Windows Vista 的计算机中安装 SSIS 开发工具。或者,您在运行时已晚于生成 2.0.50727.832 安装了.net 框架修补程序的 Windows 操作系统的计算机上安装 SSIS 开发工具。
  • 您可以使用 SQL Server 商业智能开发工作室创建或编辑一个 SSIS 包。
  • SSIS 包中尝试创建或编辑脚本任务或脚本组件。
  • 您尝试运行计算机或任何其他具有相似的配置的计算机上的包。
在此的示例当您试图保存脚本做的更改脚本编辑器的行为可能不正确或可能会生成错误消息。 此外,SSIS 引擎可能无法执行包含脚本的包。 但是,您可以运行或编辑相同的包的不运行 Windows Vista 或的已不在.net Framework 2.0 的修复晚于生成 2.0.50727.832 安装在计算机上的成功。

出现此问题时, 您可能会遇到以下症状:
  • 当您尝试执行现有的 SSIS 包包含的脚本任务、 执行可能会失败,并收到以下错误消息:
    未能加载脚本文件
  • 当试图执行现有的 SSIS 包包含脚本组件的"NullReferenceException"错误消息可能会执行。
  • 当您创建新的脚本,或编辑已有的脚本后关闭了 Microsoft Visual Studio 为应用程序 (VSA) 脚本编写环境时, 您可能会收到以下错误消息:
    任务/组件被配置为预编译脚本,但找不到二进制代码
  • 脚本任务中或脚本组件中,您可以在代码中设置断点。在调试脚本任务或脚本组件时, 您可能会收到以下错误消息:
    未能加载脚本文件
    警告: 0x8001902
    类型为 System.Runtime.InteropServices.COMException 的异常 Microsoft.VisualBasic.Vsa.dll 中发生,但未在用户代码中处理
    其他信息: 检索与 CLSID {A138CF39-2CAE 42 C 2-ADB3-022658D79F2F} 组件的 COM 类工厂失败,出现以下错误: 80040154。
    注意若要解决此问题,安装早于生成 2.0.50727.832 的.net Framework 2.0 版本时,以下 Microsoft 知识库文章中描述的修复程序。
    928208FIX: 为应用程序 Visual Basic 运行库使用 Visual Studio 的自定义应用程序可能无法被编译的宏或运行宏
注意您遇到这些症状,无论是否安装了 SQL Server 2005 Service Pack 1 (SP1)。

原因

对于在 Microsoft.net Framework 2.0 晚于 2.0.50727.832 的版本,因为公共语言运行库 (CLR) 运行工作站库 (Mscorwks.dll) 中的最近更改的出现此问题。 更改引入了 Microsoft Visual Basic 运行时引擎 (Vsavb7rt.dll) VSA 和 SSIS 使用二进制兼容性问题。 该问题会阻止从宏编译操作过程中正确生成程序集。 此问题会导致包含已编译不执行脚本的现有包。

VSA 的某些设计时操作也会受到影响。 例如对于编译器可能无法生成公共中间语言 (CIL),当您在设计时使用 VSA。

解决方案

若要解决此问题,使用基于您的需要下列方法之一。

注意以下方法描述了您可以运行 SSIS 的计算机上应用的修补程序。请注意这些修复程序中的每一个都提供了相同的功能。唯一的区别是每个修补程序根据 SQL Server 2005 的特定版本进行打包。

方法 1

注意我们建议使用此方法解决此问题。

安装 SQL Server 2005 Service Pack 2 (SP2)。有关如何获取 SQL Server 2005 Service Pack 2 的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
913089如何获取最新的 service pack,SQL Server 2005 年

方法 2

注意如果满足下列条件,则可以使用这种方法:
  • 您不想安装 SQL Server 2005 SP2。
  • 在安装 SQL Server 2005 SP1。
  • 没有应用任何基于 SQL Server 2005 SP1 的修补程序。
  • 当前生成 SQL Server 2005 年是 2047年。
应用以下 Microsoft 知识库文章中描述的修补程序:
932555FIX: A 脚本任务或脚本组件可能不能正确运行时在 SQL Server 2005 生成 2047年中运行的 SSIS 包

方法 3

注意如果满足下列条件,则可以使用这种方法:
  • 您不想安装 SQL Server 2005 SP2。
  • 在安装 SQL Server 2005 SP1。
  • 应用基于 SQL Server 2005 SP1 的修复程序。
  • 晚于 2047 SQL Server 2005 的当前版本。
应用以下 Microsoft 知识库文章中描述的修补程序:
931593FIX: A 脚本任务或脚本组件可能不能正确运行时生成 2153年及更高版本构建的 SQL Server 2005 中运行的 SSIS 包

方法 4

注意如果满足下列条件,则可以使用这种方法:
  • 您不想安装 SQL Server 2005 SP2。
  • 正在运行 SQL Server 2005 的发行版本。
  • 没有应用基于 SQL Server 2005 的发行版本的修补程序。
  • 当前生成 SQL Server 2005 年是 1399年。
应用以下 Microsoft 知识库文章中描述的修补程序:
932556FIX: A 脚本任务或脚本组件可能不能正确运行时生成 1500年及更高版本构建的 SQL Server 2005 中运行的 SSIS 包

方法 5

注意如果满足下列条件,则可以使用这种方法:
  • 您不想安装 SQL Server 2005 SP2。
  • 正在运行 SQL Server 2005 的发行版本。
  • 您已应用的基于 SQL Server 2005 修补程序。
  • 晚于 1399 SQL Server 2005 的当前版本。
应用以下 Microsoft 知识库文章中描述的修补程序:
932557FIX: A 脚本任务或脚本组件可能不能正确运行时在 SQL Server 2005 生成 1399年中运行的 SSIS 包
使用下列任一方法后,您可以继续遇到任何以下 Microsoft 知识库文章中描述的问题:
928208FIX: 为应用程序 Visual Basic 运行库使用 Visual Studio 的自定义应用程序可能无法被编译的宏或运行宏
在这种情况下应用此修复程序以前生成 2.0.50727.832 的.net Framework 2.0 版本是否 928208 的 Microsoft 知识库文章中描述的。

状态

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

更多信息

安装.net Framework 2.0 修补程序后,某些情况下可能会出现在不同的操作系统和硬件平台上。以下是这种情况下与此处介绍的修复程序将如何简化任何潜在问题的信息一起的说明。

描述 1

满足以下要求的所有计算机都继续运行,无需受到影响:
  • 运行 Windows Vista 以外的其他 Windows 操作系统的计算机
  • 计算机的.net Framework 2.0 修补程序晚于生成 2.0.50727.832 尚未安装
此外,SSIS 数据包被正确执行。

描述 2

正确地执行脚本任务或脚本组件不包含任何 SSIS 包。

说明 3

脚本任务或脚本组件不会包含任何 SSIS 包将继续正确执行,如果您已选择不进行预编译代码。

注意这种情况下是在 64 位平台上不可能的。在 64 位平台上都编译代码 JIT 基础上的没有编译器工具。

描述 4

默认状态下,与任何运行 Windows Vista 的计算机上的操作系统一起安装了.net Framework 2.0 修补程序。您可以通过安装本文中的提到的修复程序来解决此问题。

描述 5

在 64 位平台上无法执行包含脚本任务或脚本组件的任何 SSIS 包。您可以通过安装本文中的提到的修复程序来解决此问题。唯一的解决方法是手动重新编译了.net Framework 2.0 修补程序安装的计算机上的所有脚本。此过程可确保 CIL 代码是同时生成和使用相同版本的 VSA。因此,不存在任何二进制不兼容。

说明 6

所有正在运行 Windows Vista 以外的其他 Windows 操作系统的计算机上, SSIS 基础结构试图重新编译一个脚本,它不会被执行。即使没有安装.net Framework 2.0 修补程序,这是如此。在大多数的情况中 SSIS 包将继续运行而无需手动干预。由于的重新编译的系统开销,您可能会注意到非常小降低性能。减少为小于 1%。安装 SSIS 修补程序或 SQL Server 2005 SP2 时包出解决二进制不兼容性,如果有持续的故障执行 CIL 代码的一个附加步骤。但是,包日志文件和控制台可能包含以下警告消息之一或下列有关失败的错误消息之一可以。

警告消息 1

预编译的脚本未能加载。正在尝试重新加载已更新的数据与脚本。有关详细的信息,请参阅该的 Microsoft 知识库文章 KB931846 (http://go.microsoft.com/fwlink/?LinkId=81885)

警告消息 2

预编译的脚本未能加载。试图重新编译。有关详细的信息,请参阅该的 Microsoft 知识库文章 KB931846 (http://go.microsoft.com/fwlink/?LinkId=81885)

第 3 条警告消息

预编译的脚本未能加载。正在尝试重新加载已更新的数据与脚本。有关详细的信息,请参阅该的 Microsoft 知识库文章 KB931846 (http://go.microsoft.com/fwlink/?LinkId=81885)

错误消息 1

脚本可能不会重新编译或运行: {0}.有关更多的信息,请参阅该的 Microsoft 知识库文章 KB931846 (http://go.microsoft.com/fwlink/?LinkId=81885)

错误消息 2

预编译的脚本未能加载。运行脚本组件的计算机没有能够重新编译该脚本的编译器。若要重新编译该脚本,请参阅该的 Microsoft 知识库文章 KB931846 (http://go.microsoft.com/fwlink/?LinkId=81885)

第 3 条错误消息

预编译的脚本未能加载。运行脚本任务的计算机没有能够重新编译该脚本的编译器。若要重新编译该脚本,请参阅该的 Microsoft 知识库文章 KB931846 (http://go.microsoft.com/fwlink/?LinkId=81885)

SSIS 和 $ VSA 之间交互的概述

SSIS 使开发人员使用多个脚本任务和脚本转换中启用自定义工作流和转换逻辑的 SSIS 包。这些组件中使用的基础技术是 VSA。当开发人员使用一个脚本在设计时,将启动 VSA IDE,开发人员可以通过编程自定义的 Visual Basic 2005 代码。当关闭 IDE 时,Visual Basic 代码是自动预编译为 CIL 代码格式。

注意CIL 以前被称为 Microsoft 中间语言 (MSIL)。

Visual Basic 源代码和 CIL 代码在包结构与其他包详细信息一起保存。当在调试过程中或在已部署的方案中执行包时软件包中任何 CIL 代码是发送到 VSA 引擎,然后执行。

注意这种交互是透明的。 通常,您将不会知道此协议。

您还可以决定不向预编译 CIL 代码,在每个脚本的基础上。在这种情况下 Visual Basic 源代码仅在包中保存并不会被保存在 CIL 代码中。运行时 VSA 动态编译而未保存在 CIL 代码中任何源代码。然后,VSA 执行接下来的 CIL 代码使用了前面所述的方法。但是,VSA 的某些编译组件有永远不被支持在 64 位计算机上。因此,自动编译步骤中那些 64 位部署失败。要变通解决此问题的唯一方法是确保您始终预编译的用于 64 位部署脚本。

有关命名 Microsoft SQL Server 更新架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
822499Microsoft SQL Server 软件更新程序包的新命名架构
Microsoft 使用时释放该软件之后,它更正软件的术语有关的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684用于描述 Microsoft 软件更新的标准术语的说明

属性

文章编号: 931846 - 最后修改: 2007年11月20日 - 修订: 3.2
这篇文章中的信息适用于:
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
关键字:?
kbmt kbprb kbtshoot kberrmsg kbbug KB931846 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 931846
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