Web引用打破了SSIS包

时间:2012-09-20 15:18:35

标签: c# sql web-services ssis sql-server-2012

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

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

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

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

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

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

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

有两种可能的资源是herehere