部署时为什么会在MVC中抛出错误本地报表服务?

时间:2013-05-27 05:19:38

标签: asp.net-mvc asp.net-mvc-4 reporting-services

发生了如此罕见的事情。

在我的rdlc报告中,我设置了一些文本框以在MVC 4项目中显示为PDF,如果我在localhost模式下运行它,它的效果非常好。

但如果我部署了解决方案,则会抛出以下错误。

  

参数无效。 [ArgumentException:参数无效。]   System.Drawing.Graphics.GetHdc()+ 1144409
  Microsoft.ReportingServices.Rendering.RichText.LineBreaker.Flow(文本框   textBox,Graphics g,FontCache fontCache,FlowContext flowContext,   布尔值keepLines,Single&身高)+57
  Microsoft.ReportingServices.Rendering.RichText.TextBox.MeasureFullHeight(文本框   textBox,Graphics g,FontCache fontCache,FlowContext flowContext,   单&安培; contentHeight)+500
  Microsoft.ReportingServices.Rendering.HPBProcessing.TextBox.DetermineVerticalSize(PageContext中   pageContext,Double topInParentSystem,Double bottomInParentSystem,....

     

[LocalProcessingException:本地报告期间发生错误   处理。]
  Microsoft.Reporting.WebForms.LocalReport.InternalRender(String format,   Boolean allowInternalRenderers,String deviceInfo,PageCountMode   pageCountMode,CreateAndRegisterStream createStreamCallback,   警告[]&安培;警告)+338
  Microsoft.Reporting.WebForms.LocalReport.InternalRender(String format,   Boolean allowInternalRenderers,String deviceInfo,PageCountMode ...

enter image description here

注意:我注意到如果删除了我的rdlc中的那些文本框(我的意思是删除了everthing),生成一个空白的PDF。所以,我意识到文本框是麻烦,但我不知道为什么只有我部署。

我错过了什么?

我正在使用的代码是下一个:

    public ActionResult SampleReport()
    {
        LocalReport localReport = new LocalReport();
        localReport.ReportPath = Server.MapPath("~/Reports/Report1.rdlc");

        string reportType = "PDF";
        string mimeType;
        string encoding;
        string fileNameExtension;

        //The DeviceInfo settings should be changed based on the reportType
        //http://msdn2.microsoft.com/en-us/library/ms155397.aspx
        string deviceInfo =
        "<DeviceInfo>" +
        "  <OutputFormat>PDF</OutputFormat>" +
        "  <PageWidth>8.5in</PageWidth>" +
        "  <PageHeight>11in</PageHeight>" +
        "  <MarginTop>0.5in</MarginTop>" +
        "  <MarginLeft>1in</MarginLeft>" +
        "  <MarginRight>1in</MarginRight>" +
        "  <MarginBottom>0.5in</MarginBottom>" +
        "</DeviceInfo>";

        Warning[] warnings;
        string[] streams;
        byte[] renderedBytes;

        //Render the report
        renderedBytes = localReport.Render(
            reportType,
            deviceInfo,
            out mimeType,
            out encoding,
            out fileNameExtension,
            out streams,
            out warnings);
        //Response.AddHeader("content-disposition", "attachment; filename=NorthWindCustomers." + fileNameExtension);
        return File(renderedBytes, mimeType);
    }

更新 当我开始挖掘如何使用Report Services创建PDF时,我只关注这些指南:

最后一个是因为,我必须包括三个参考库,Microsoft.ReportViewer.CommonMicrosoft.ReportViewer.WebFormsMicrosoft.ReportViewer.ProcessingObjectModel因为,当我部署我的解决方案时,这些库不计算在内,所以我手动添加。

就是这样!

0 个答案:

没有答案