在localreport上显示图像

时间:2013-11-22 16:17:57

标签: c# wcf reporting-services localreport

我有一个测试系统,其中包含一个与wcf服务对话的winforms客户端应用程序,它允许我根据用户选择的标准打印报告。 在wcf方面,我们有一些rdlc文件,我们试图在其中显示一些图像。我们生成图像并将它们保存到磁盘,并将图像的文件路径作为数据源中数据集的一部分传递。 以下代码生成图像

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

任何帮助都会非常感激!!!

1 个答案:

答案 0 :(得分:0)

5年后......

我今天遇到同样的问题,不得不在运行SSRS的服务器上的Reporting Services配置管理器中设置执行帐户。表面上这是必需的,因为SSRS渲染器运行的默认帐户没有权限访问我正在使用的图像。添加具有访问映像权限并重新启动SSRS的域帐户后,我的报告现在正在运行。