Vb.net 从SSIS调用SSR:某些PDF文件已损坏
我正在从Vb.net 从SSIS调用SSR:某些PDF文件已损坏,vb.net,reporting-services,ssis,script-task,Vb.net,Reporting Services,Ssis,Script Task,我正在从SSIS脚本任务调用SSRS,并以PDF格式存储报告 下面是我在脚本任务中的代码: Protected Sub SaveFile(ByVal url As String, ByVal localpath As String) Dim loRequest As System.Net.HttpWebRequest Dim loResponse As System.Net.HttpWebResponse Dim loResponseStream As System.I
SSIS脚本任务
调用SSRS
,并以PDF格式存储报告
下面是我在脚本任务中的代码:
Protected Sub SaveFile(ByVal url As String, ByVal localpath As String)
Dim loRequest As System.Net.HttpWebRequest
Dim loResponse As System.Net.HttpWebResponse
Dim loResponseStream As System.IO.Stream
Dim loFileStream As New System.IO.FileStream(localpath, System.IO.FileMode.Create, System.IO.FileAccess.Write)
Dim laBytes(256) As Byte
Dim liCount As Integer = 1
Try
loRequest = CType(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest)
loRequest.Credentials = System.Net.CredentialCache.DefaultCredentials
loRequest.Timeout = 7200
loRequest.Method = "GET"
loResponse = CType(loRequest.GetResponse, System.Net.HttpWebResponse)
loResponseStream = loResponse.GetResponseStream
Do While liCount > 0
liCount = loResponseStream.Read(laBytes, 0, 256)
loFileStream.Write(laBytes, 0, liCount)
Loop
loFileStream.Flush()
loFileStream.Close()
Catch ex As Exception
End Try
End Sub
Public Sub Main()
Dim url, destination, Todaydate, FolderName, DestinationError As String
Try
Todaydate = Dts.Variables("TodayDate").Value.ToString
FolderName = Dts.Variables("FolderName").Value.ToString
destination = Dts.Variables("DestFolder").Value.ToString + "\" + Todaydate + "\" + FolderName + "\" + Dts.Variables("CurrentReport").Value.ToString + "_" + Dts.Variables("CurrentParamID").Value.ToString + "_" + Format(Now, "yyyyMMdd") + ".pdf"
url = "http://server-name/ReportServer?/ReportPath/AUTOMATED/" + Dts.Variables("CurrentReport").Value.ToString + "&rs:Command=Render&Param=" + Dts.Variables("CurrentParamID").Value.ToString + "&rs:Format=PDF"
Dts.Variables("User::GeneratedPDFpath").Value = destination
SaveFile(url, destination)
End Try
Dts.TaskResult = ScriptResults.Success
End Sub
这段代码运行良好,可以生成PDF格式的报告。但是,有时它会生成大小为0 KB的PDF文件。打开该PDF时,会显示损坏文件的错误
另外,我使用了存储结果集的执行SQL任务。使用Foreach循环
容器中的结果集,它最初为今天的日期创建了文件夹,并将相应的PDF存储在文件夹中
如果有人能在这方面提供帮助,我们将不胜感激。您为什么要从SSIS致电SSRS?为什么不使用SSRS订阅?您的catch块没有执行任何操作,因此错误将被忽略。你能把错误信息记录下来,看看里面有没有线索吗?我有多个SSRS报告要生成,结果集会根据天的不同而不同。整个过程需要自动化。所以@TabAllemanI确实包含了错误部分。但作业/包不会失败。它只是成功地执行,有时会生成0 KB的文件@MarkWojciechowicz