【发布时间】:2019-02-18 19:34:28
【问题描述】:
我正在使用 SSIS 将 PDF 从 SSRS 上传到 SharePoint 2010 库。当我在 SSDT 中运行包时,它会按预期上传。但是,当我部署到 SSIS 目录并使用 SQL Server 代理下的代理帐户运行包时,我收到以下错误:
找不到网络路径
我已验证我的代理帐户可以发布到 SharePoint 网站,因为权限设置正确。我认为 SSIS 甚至没有尝试使用 SharePoint 网站进行身份验证(也许尝试匿名连接?)。
上传 PDF 的代码位于下方。它成功地向 SSRS 验证用户,但不能向 SharePoint 验证。它上传到的路径是 UNC 路径。如何让它对 UNC 路径进行身份验证?一个想法是映射驱动器,但这似乎是一种黑客行为,可能不那么可靠。
Dim httpCon As ConnectionManager = Dts.Connections("DDM Report Server")
Dim clientConn As HttpClientConnection = New HttpClientConnection(httpCon.AcquireConnection(Nothing))
clientConn.ServerURL = Dts.Variables("$Package::DDM_ReportServer").Value.ToString() & Dts.Variables("Report_Filename").Value.ToString()
clientConn.DownloadFile(Dts.Variables("$Package::SharePoint_Delivery_Location").Value.ToString() & Dts.Variables("PDF_Name").Value.ToString(), True)
【问题讨论】:
-
您能在本地登录到 SSIS 服务器并查看是否可以从中访问 UNC 路径吗?还是让贵公司的其他人来做?
-
可以,SSIS 包将运行。但这仅适用于该会话。当服务器重新启动时,它会失败。我需要在代码或连接管理器中模仿相同的功能。
-
如果经过身份验证的用户不是根问题,我的下一个猜测将是服务器上未安装一些 IE 驱动程序扩展问题。有 something 允许您将驱动器映射到共享点(或将 SP 视为 UNC 路径),尽管在桌面上有效,但我还没有在服务器上工作。
-
@Todd SQL Server 代理使用的服务帐户可能没有访问 SharePoint 的权限。
-
FWIW - 我使用 HTTP 地址 (
http://sharepointreports/sites/.../Documents/) 使用Workbook.SaveAs(ReportName)将 Excel 文件从模板导出到 SharePoint DOCUMENTS 文件夹。
标签: sql-server sharepoint reporting-services ssis ssis-2012