2013-11-22 5 views
1

사용자가 선택한 기준에 따라 보고서를 인쇄 할 수있는 wcf 서비스와 통신하는 winforms 클라이언트 응용 프로그램이 포함 된 테스트 시스템이 있습니다. wcf 쪽에서 우리는 몇 개의 이미지를 보여주기 위해 몇 개의 rdlc 파일을 가지고 있습니다. 이미지를 생성하여 디스크에 저장하고 이미지의 파일 경로를 데이터 소스의 데이터 세트의 일부로 전달합니다. 다음 코드는 내가localreport에 이미지 표시

var rmDS = new List<object>() 
{ 
    new TestObj() 
      { 
       Barcode = GenerateBarcode(DateTime.Now.Ticks.ToString()), 
      },     
}; 

return rmSpecialDeliveryService; 

다음 한 내 데이터 집합을 만들려면 이미지

var image = Code128Rendering.MakeBarcodeImage(barcode, 2, true); 
var imageFilename = HttpContext.Current.Server.MapPath(string.Format("{0}.bmp", imageId));     
image.Save(imageFilename); 

를 생성 그리고 보고서의 데이터 소스에이 추가되었습니다. 내가 경고 메시지 다음 내가 할 보고서를 렌더링 할 때

Warning: Images with external URL references will not display if the report is  
published to a report server without an UnattendedExecutionAccount or the target 
image(s) are not enabled for anonymous access. (rsWarningFetchingExternalImages) 

내가 렌더링이 코드는 다음과 같습니다

var deviceInfo = 
      @"<DeviceInfo> 
      <OutputFormat>EMF</OutputFormat> 
      <PageWidth>8.5in</PageWidth> 
      <PageHeight>11in</PageHeight> 
      <MarginTop>0.25in</MarginTop> 
      <MarginLeft>0.25in</MarginLeft> 
      <MarginRight>0.25in</MarginRight> 
      <MarginBottom>0.25in</MarginBottom> 
     </DeviceInfo>";    

Warning[] warnings; 
m_streams = new List<Stream>(); 
report.Render("Image", deviceInfo, CreateStream, out warnings); 
foreach (var stream in m_streams){ stream.Position = 0; } 

어떤 도움이 greatfully 주시면 감사하겠습니다!

+0

나는 보고서에서 다음 표현 집합 '= "file : ///"& Fields! StartBarcode.Value' – wakthar

+0

의 보고서를 클라이언트로 가져 왔을 때 이미지에 대한 액세스를 요청하십시오. 그리고 그 시간에 렌더링 후에 리소스에 대한 액세스 권한이 없으면 빈 오류 또는 기타 오류가 발생합니다. –

답변

0

오년 후 ...

오늘이 같은 문제가 및 SSRS가 실행중인 서버에 Reporting Services 구성 관리자 내에서 실행 계정을 설정해야했다. 표면 상으로는 SSRS 렌더러가 실행중인 기본 계정에 내가 사용했던 이미지에 대한 액세스 권한이 없었기 때문에 이것이 필요했습니다. 이미지에 액세스 할 권한이있는 도메인 계정을 추가하고 SSRS를 다시 시작하면 내 보고서가 작동합니다.