0
SSRS에서 보고서를 쿼리하여 HTTPWebRequest 및 HTTPWebResponse를 사용하여 스트림을 가져 와서 PDF로 파일로 저장하는 SSRS Bulk 리포터를 만들었습니다.파일에 GetResponseStream이 길어지고 있습니다.
그러나 고객이 오래 걸릴 것이라고 불평했습니다. 나는 그것을 시험했으며,이 기능은 + 15.5 초가 걸렸다. GetResponseStream과 파일 작성기 사이에 휴식 시간을두고 다음 부분으로 이동하기 전에 약 3 초 동안 기다리면 총 시간에서 4 초가 면도됩니다.
누구나 설명 할 수 있습니까? 아니면 조금 더 빨리 조언을 해줄 수 있습니까?
Public Function ExportReport(ByVal QueryStringParameters As String, ByVal FileName As String) As String
Dim PDFName As String = ReportFolderPath & FileName & ".pdf"
'Create a http request or connecting to the report server.
Dim ReportHTTPRequest As HttpWebRequest = Nothing
'Create a http response to catch the data stream returned from the http request.
Dim ReportHTTPResponse As HttpWebResponse = Nothing
'Create a stream to read the binary data from the http reponse.
Dim ReportStream As Stream = Nothing
Dim ReportFileStream As FileStream = Nothing
'Create an array of bytes to get the binary data from the stream.
Dim ReportBytes As Byte()
Dim ReportBuffer As Integer = 204800
Dim ReportBytesRead As Integer = 0
'Create a webrequest to get the report with all the report parameters included.
ReportHTTPRequest = WebRequest.Create(ReportServerURL & QueryStringParameters)
ReportHTTPRequest.Credentials = CredentialCache.DefaultCredentials
'Get the response from the request.
ReportHTTPResponse = ReportHTTPRequest.GetResponse()
'Read the binary stream from the http response.
ReportStream = ReportHTTPResponse.GetResponseStream()
ReportBytes = New Byte(ReportBuffer) {}
ReportBytesRead = ReportStream.Read(ReportBytes, 0, ReportBuffer)
ReportFileStream = New FileStream(PDFName, FileMode.Create)
Do While ReportStream.CanRead And ReportBytesRead > 0
ReportFileStream.Write(ReportBytes, 0, ReportBytesRead)
ReportBytesRead = ReportStream.Read(ReportBytes, 0, ReportBuffer)
Loop
ReportHTTPResponse.Close()
ReportStream.Close()
ReportFileStream.Close()
Return PDFName
End Function