Web引用打破了SSIS包

Ric*_*rco 5 c# sql ssis web-services sql-server-2012

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

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

但是,当我将此项目移动到Windows Server 2008 R2时,程序包中断显然没有理由.我在错误列表上没有编译错误,如果构建脚本任务它将成功,但是当我完成编辑脚本时,将出现一个消息框,其中显示以下错误消息:

"包中包含的脚本有编译错误.你想保存更改吗?"

如果我从脚本任务中删除Web引用,则不会显示此消息.

由于这个原因,包不会运行.我在事件查看器上检查了错误详细信息,但它只显示"程序包失败",并且没有关于此问题的详细信息.这可能与证书问题有关吗?是否有错误日志或方式来了解导致程序包失败的更多详细信息?

谢谢.

Eri*_*ikE 1

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

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

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

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

这里这里有一些可能的资源。