>

우리는 SSRS Enterprise가 없으며 VS2017에서이 모든 것을 개발하고 있습니다. SSRS 보고서가 서버에 업로드되어 완벽하게 작동합니다. URL을 IE에 복사/붙여 넣을 수 있으며 지정된 매개 변수를 사용하여 보고서를 실행하므로 URL이 정확하다고 생각합니다.

SQL Reporting Services 웹 페이지에서 내보내기를 클릭하고 PDF를 선택하면 PDF로 올바르게 저장됩니다. Excel과 마찬가지로 Excel로 올바르게 내 보냅니다.

SSIS를 통해 PDF를 만들려고하면 올바른 폴더에 올바른 파일 이름을 가진 파일이 만들어 지므로 좋아 보이지는 않습니다.

PDF를 열려고하면 손상된 것으로 다시 나타납니다.

내가 무언가를 찾았습니다 ( https://social.msdn.microsoft. com/포럼/sqlserver/en-US/6f750009-cd8e-4329-9d82-809c3c26795d/ssrs-pdf-export-the-error-an-error-opening-this-document-this-file-is-damaged-and- cand-not-be? forum = sqlreportingservices )는 일부 DLL에 대한 권한을 전체 액세스 권한으로 변경하고 읽기/쓰기가 아니라고 말하면서 domain \ Administrators가 두 가지에 대한 전체 액세스 권한을 갖도록 변경했습니다. DLL과 차이가 없었습니다

코드에 전달 된 URL은 다음과 같습니다. http : // XXXX/Reports/report/ScheduledReports/WeeklySalesInvoiced_PDF? StartDate = 07 % 2F08 % 2F2019&EndDate = 07 % 2F12 % 2F2019&TerritoryID = 101&rs : Command = Render&rs : Format = PDF

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.CreateNew, 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 = 600000
    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

notepad ++에서 PDF를 열면 이것이보고있는 것입니다 (보고서에있는 것과는 다릅니다) :

<!DOCTYPE html>
<html id="portal" ng-controller="MainController as main" lang="{{main.getLanguage()}}" ng-class="{'flex':main.needsCssFlex}" ng-strict-di resizer>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=ed

파일을 Excel로 저장하려고했는데 결과가 똑 같았습니다. 파일이 손상되어 Excel에서 어쨌든 열도록 요청합니다. 예라고 말하면 PDF에있는 것과 동일한 내용이 표시됩니다


  • 답변 # 1

    기본 SSRS 설치를 가정하면 http : // server/Reports로 이동하여 다음과 같습니다.

    이것은 사용자가 SSRS를 관리 할 수있는 웹 포털입니다.

    SSRS와 관련된 두 번째 사이트가 있으며 이것이 "실제"작업을 처리 할 때 지적해야하는 사이트입니다 http : // server/ReportServer

    ReportServer 위치를 사용하여 URL을 다시 빌드하면 실행 가능한 PDF/Excel 문서를 얻게 될 것 같습니다. 현재 웹 포털에서 래퍼 페이지를 다운로드하고 있습니다.

  • 이전 ios - 인스트루먼트 (XCode)의 명령 행 인스턴스에서 인증 프롬프트를 제거하는 방법이 있습니까?
  • 다음 Windows 10에서 docker-compose services 호스트 이름을 확인할 수 없습니다