5

我正在使用 SQL Server 2012 和 Visual Studio 2010 Shell 开发 SSIS 包。

我需要在我拥有的脚本任务中使用 Web 方法,并且我能够在 Windows 7 上运行此脚本而没有任何问题。此 Web 服务需要我已在我的个人计算机商店中安装的证书。

但是,当我将此项目移至 Windows Server 2008 R2 时,包显然无缘无故地中断了。我在错误列表中没有编译错误,如果构建脚本任务它将成功,但是当我完成编辑脚本时,将出现一个消息框,其中包含以下错误消息:

“包中包含的脚本有编译错误。要保存更改吗?”

如果我从脚本任务中删除 Web 引用,则不会出现此消息。

因此,该软件包将无法运行。我在事件查看器上检查了错误详细信息,但它只显示“包失败”并且没有显示有关此问题的更多详细信息。这可能与证书问题有关吗?是否有错误日志或方法可以了解有关导致包失败的原因的更多详细信息?

谢谢你。

4

1 回答 1

1

您需要担心的不仅仅是 Web 服务本身所需的证书的安全问题。

SSRS Web 服务器将不允许加载标记为“不安全”的程序集——这几乎是任何进行 I/O 的程序。我曾经在 SSRS 报告中添加了对 .Net Forms 程序集的引用,以便使用其富文本功能。它在 Visual Studio 中运行良好,但一旦部署到 SSRS Web 服务器,它就永远无法运行。我确信它可以发挥作用,但由于其他优先事项,我实际上放弃了这份工作,因为我尝试的一切都没有奏效。

在线搜索添加自定义程序集会产生一些有用的信息,以使自定义程序集正常工作。以下是一些关键步骤:

  • 使用强名称对程序集进行签名,这是必需的,因为它已部署到 GAC。
  • 在程序集中使用程序集级属性[assembly:AllowPartiallyTrustedCallers],以便 SSRS 可以使用它。

这里这里有几个可能的资源。

于 2013-02-27T06:38:57.070 回答