【问题标题】:SSIS Web ServiceSSIS 网络服务
【发布时间】:2012-02-01 10:46:19
【问题描述】:

我有一个使用 SQL 代理作业执行的 SSIS 2005 包。此包有一个 Web 服务任务,其凭据与用于执行包的凭据不同。

我的包在服务器上执行时遇到以下问题:

“Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebserviceTaskException: System.UnauthorizedAccessException: 访问路径.....被拒绝。

包正在集群环境中执行。两个帐户都已在服务器上创建,因此包能够写入 TEMP 文件,但问题仍然存在。

【问题讨论】:

  • 两台服务器上的 SQL 代理用户都是 Alice,包有 Bob 的凭据信息,因此它可以连接到 Web 服务,对吗?当包执行时,提供的错误消息会让您相信 Bob 凭据没有被提供?
  • 如果您使用授权连接到服务的人的凭据手动执行包,它是否有效?如果禁用 Web 服务任务,基本包是否在 SQL 代理的上下文中运行?
  • 问题似乎是程序包正在尝试使用 Web 服务的凭据而不是执行程序包的凭据来写入服务器上的 TEMP 文件。..
  • 有趣,我必须对此进行试验,看看能否重现您的发现。通常,人们会按照question 中的说明调整 Buffer/BlobTempStoragePath。我不认为这些存在于网络服务任务中,但我可能弄错了。

标签: sql-server ssis sql-agent


【解决方案1】:

基于这个thread,你应该可以设置webservice的OutputLocation属性。这需要配置为指向调用 Web 服务的用户的凭据可以访问的位置。这可能需要管理员修改目录路径上的 ACL。

【讨论】:

    【解决方案2】:

    在集群环境中,您应该确保写入的位置是集群资源。例如,您可以创建文件共享,但文件共享必须是集群资源,以便在集群故障转移时可用。如果要写入驱动器,请确保该驱动器是依赖于适当 SQL Server 资源的群集驱动器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      • 2011-09-15
      • 2018-02-05
      • 2015-02-11
      • 2013-03-18
      • 2011-08-22
      相关资源
      最近更新 更多