나는 SSRS에서 매우 이상한 변칙성을 물려받았습니다. 2019년을 사용하여 새 SSRS 인스턴스가 생성되었으며 이전 2016 인스턴스와 동일한 ReportServer DB를 사용하는 것으로 보입니다. 이는 수천 개의 보고서 및 관련 항목이 이식되는 것을 방지하기 위해 수행되었을 수 있습니다.
2016 인스턴스는 여전히 실행 중인 것으로 보이지만 ReportingService DB에 액세스하는 데 사용된 계정은 더 이상 유효하지 않으므로 2016 URL을 사용하여 보고서에 액세스하려고 하면 '보고서 서버 데이터베이스에 액세스할 수 없습니다.'라는 메시지가 표시됩니다.
2019년에 보고서에 액세스하면 보고서 관리자에서 보고서를 렌더링할 수 있습니다.
ReportService2010.Render()에 대한 wcf 서비스 호출을 통해 2019 인스턴스의 URL을 사용하여 동일한 보고서를 호출하면 2016 인스턴스에 대해 서비스에 액세스하는 것과 동일한 오류가 발생합니다.
또한, 렌더링 시도에 대한 로그 정보와 "보고서 서버 데이터베이스에 연결할 수 없습니다." 오류가 2016년의 오류 로그에만 표시되기 때문에 2016 버전에서 2019에 대한 호출을 렌더링하려고 한다는 것을 알고 있습니다.
iis 로그를 다시 확인하고 wcf 서비스가 200 결과로 렌더링을 요청하기 위해 2019 서버를 호출하고 있음을 확인했습니다(끝점에 액세스할 수 있으면 항상 200이 반환되므로 실행 후 잊어버리기 때문입니다).
실제로 wcf는 2019 인스턴스를 호출하고 보고서를 요청하는 것처럼 보이지만 해당 요청에 대한 로깅은 SSRS의 2016 인스턴스에서 완료됩니다.
보고서 서버 데이터베이스에 제대로 구성되지 않은 것이 있을 수 있습니까?
답변1
이것은 사용자 오류였습니다. WCF 서비스의 app.config가 올바른 인스턴스를 가리키고 있으므로 올바른 로깅 메시지가 표시됩니다. 모든 WCF 서비스를 참조하는 API 프로젝트의 web.config에는 동일한 키를 가진 두 개의 앱 설정이 있습니다. 키 하나가 잘못되었으며 ReportExecution 엔드포인트 바인딩에 사용되었습니다.
나는 구성이 깨끗하다고 가정했습니다.