2017-12-18 4 views
0

SQL Server Reporting Services에있는 보고서를 렌더링하기 위해 Windows 데스크톱 응용 프로그램을 빌드하려고합니다. 내가 찾은 예제가 하나도 없기 때문에 나는 머리카락을 꺼내왔다.SSRS Render() - 가장 간단한 예제를 컴파일 할 수 없습니다.

  1. 오픈 비주얼 스튜디오와 C# (WPF) here (마이크로 소프트)에서 샘플 코드에 붙여

  2. 를 사용하여 Windows 데스크톱 응용 프로그램을 만든 : 여기에 내가 다음 단계입니다.

  3. 필요한 Render() 메서드를 제공해야하는 SSRS 웹 서비스 인 http://localhost/reportserver/ReportExecution2005.asmx에 대한 서비스 참조가 만들어졌습니다. ReportExecution2005라고했습니다.

  4. System.Web.Services에 대한 참조가 추가되었습니다.

  5. 웹 서비스 참조 및 System.Web.Services에 대한 명령문 사용을 추가했습니다.

따라서 두 개의 추가 참조 및 아래에 표시된 Using 문이 있습니다.

enter image description here

내 문제는 ReportExecutionService이 존재하지 않는다는 것입니다. 나는 그것을 어디에서도 발견 할 수 없다. 내가 뭘 잘못하고 있는지 말해 줄 수있어? 도와 줘서 고마워!

enter image description here

+0

가 동일한 시스템에 로컬로 SSRS를들이받은 있습니까 : 차이에 대한 자세한 내용을 알고하려면 여기 봐 주 시겠어요? 브라우저에서 asmx로 이동하여 웹 서비스에서 응답을 받으면 테스트 해 보셨습니까? –

+0

안녕하세요, @ AlanSchofield. 답장을 보내 주셔서 감사합니다. 나는 그것을 시도하지 않았지만 지금 막했습니다. 로컬 시스템과 최종 생산 시스템 모두에서 SSRS보고 서비스를 시도했습니다. 둘 다 저에게 응답을주었습니다. 응답 XML에는 Render라는 "메서드"가있는 ReportExecutionSoap 엔터티에 대한 정의가 포함 된 것 같습니다. 그러나 해당 유형의 개체를 초기화하려고하면 "추상 클래스의 인스턴스를 만들 수 없습니다."라는 오류가 발생합니다. –

답변

1

당신이 오래된 ASMX 서비스 (기존의 ASP 서비스)에 액세스하고 있기 때문에, 당신은 "서비스 참조 추가"다음은 당신이 를 통해 열 같은 대화 상자에서 찾을 수있는 웹 참조 추가 를 사용하여 시도 할 수 있습니다 "고급"을 클릭하고 "웹 참조 추가"를 선택하십시오.

일단 그렇게하면 문제없이 코드를 컴파일 할 수 있습니다. 클라이언트 프록시 코드의 모호함을 피하기 위해 "서비스 참조 추가" 을 통해 추가 한 서비스에 대한 기존 참조를 제거하십시오.

이렇게 말한 후에도 "서비스 참조 추가"를 사용할 수 있지만 샘플 코드를 일부 수정하면됩니다. 그러나 현재로서는 주어진 해결책이 당신을 위해 일해야합니다.

Web Reference vs. Service Reference

+0

우수 답변, Jay! 그것은 문제를 완벽하게 해결했습니다. 처음에 참조를 추가하려고 시도했을 때 웹 참조를 추가하는 옵션이 흐리게 표시되었습니다 (Visual Studio 2017에서). 나는 왜 정확히 기억할 수 없습니다. 귀하의 접근 방식을 통해 "백도어"를 통해 웹 참조를 추가 할 수 있으며 이제는 모든 것이 컴파일됩니다. 감사! –

+0

vs2017에서 정확히 "고급"이라고 할 수 있습니까? 나는 이전에 vs2015와 a에서 이것을해야했기 때문에 당신이 말하는 것을 정확히 알고 있습니다.그물 표준 프로젝트. 그러나 최신 업데이트가 있고 WCF 웹 서비스 참조를 추가하기 위해 설치된 확장 프로그램 인 vs2017에서는 어떤 대화 상자에서도 "고급"기능을 볼 수 없습니다. – JzInqXc9Dg

관련 문제