2013-11-22 4 views
1

У меня есть тестовая система, которая содержит клиентское приложение winforms, которое разговаривает с службой wcf, которая позволяет мне печатать отчеты в зависимости от критериев, которые выбирает пользователь. На стороне wcf у нас есть несколько файлов rdlc, в которых мы пытаемся показать некоторые изображения. Мы генерируем изображения и сохраняем их на диске и передаем путь к файлу изображения как часть набора данных в источниках данных. Следующий код генерирует изображенияОтображение изображений на localreport

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

Чтобы создать свой набор данных У меня есть следующие

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

return rmSpecialDeliveryService; 

И я добавил это к источникам данных отчета. Когда я пытаюсь сделать отчет, я получаю следующее предупреждающее сообщение

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; } 

Любая помощь будет признательно оценена !!!

+0

Я забыл ... в отчете у меня есть элемент управления изображением со следующим выражением set '= "file: ///" & Fields! StartBarcode.Value' – wakthar

+0

Когда отчет будет снесен клиенту, это будет попросите получить доступ к изображениям. И если в то время, после рендеринга, у вас нет доступа к ресурсам, тогда вы получите пустые или другие ошибки. –

ответ

0

5 лет спустя ...

У меня была эта же проблема сегодня, и пришлось создать Execution счета в Configuration Manager Reporting Services на сервере, где SSRS работает. Очевидно, это было необходимо, потому что любая учетная запись по умолчанию, на которой выполнялся рендеринг SSRS, не обладал правами на доступ к изображению, которое я использовал. После добавления учетной записи домена с правами доступа к изображению и перезапуска SSRS мой отчет теперь работает.

Смежные вопросы