1

VS 2008을 사용하여 Reporting Services 보고서 정의를 생성하고 있습니다. 문제는 스트림에서 보고서 정의를로드하려고 할 때마다 오류가 발생한다는 것입니다.VS 2008 Reporting Services 보고서 정의 생성

var loaded = XDocument.Load(filePath); 
LocalReport ret = new LocalReport(); 
using (var stream = new MemoryStream()) 
{ 
    var writer = new StreamWriter(stream); 
    loaded.Save(writer); 
    var ret = new LocalReport(); 
    ret.LoadReportDefinition(stream); 

    var r= ret.GetParameters(); 
} 

마지막 줄을 실행중인 followinf 텍스트로 LocalProcessingException를 던졌습니다 :

{"The report definition is not valid. Details: O elemento raiz está em falta."} 

자세한 것은 "루트 요소가 누락"로 번역

나는 다음과 같은 코드가 있습니다.

무엇이 잘못 될 수 있습니까?

편집 : XML 정의가 정확합니다. 문제는 정의가로드 된 후 어딘가에 있습니다.

답변

0

MemoryStream을 별도의 파일로 저장하고 원본과 비교해 보았습니까?

+0

에 CreateMemoryStream() 예, 파일은 정확히 동일합니다. 그래서 나는 이해하지 못합니다. – Megacan

+0

파일을 공유 하시겠습니까? 'LoadReportDefinition'은 일반적으로 잘 동작하며, 어떤 문제도 들어 본 적이 없습니다. 파일에 약간 잘못된 서식이있어 혼란을 일으킬 수 있습니다. –

+0

임시 파일을 만들어 대신로드하여 문제를 해결했습니다. 파일은 다음과 같습니다. http://www.megaupload.com/?d=I9MJKZTF – Megacan

2

다시 읽으려면 스트림을 다시 0 위치로 재설정해야합니다. 그렇지 않으면 LoadReportDefinition이 스트림의 끝에서 읽기를 시작합니다.

var loaded = XDocument.Load(filePath); 
LocalReport ret = new LocalReport(); 
using (var stream = new MemoryStream()) 
{ 
    var writer = new StreamWriter(stream); 
    loaded.Save(writer); 
    writer.Close(); 
    writer.Position = 0; 
    var ret = new LocalReport(); 
    ret.LoadReportDefinition(stream); 

    var r= ret.GetParameters(); 
} 

참조 this page

+0

답변을 요청하십시오. 나는 그 프로젝트에 잠시 손을 대지 않았지만, 기회가 생기면 그것을 시도 할 것입니다. – Megacan

+0

감사합니다. 이로 인해 저와 같은 문제가 해결되었습니다. – DanDan

관련 문제