本人用VS2010开发结合了VS2010里面自带的RDLC版本,在本机开发调试运行均没有问题,但在本机和其他机上发布运行就报错了。
是否RDLC和水晶报表一样需要发布运行环境。根据网上的解决方法,在WINDOWS/TEMP目录下给NETWORK SERVICE和ASP.NET用户读写权限,已经添加了,但是没有,甚至给everyone完全读写情况依旧。跪求各位遇到此情况有解决过的人帮忙告知。好人一生平安!错误是如下
--------------------------------------------
编译表达式时出现错误。本机编译器返回值:“[BC2001] 未能找到文件“C:\WINDOWS\TEMP\j1tyq1k4.0.vb””。说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: 编译表达式时出现错误。本机编译器返回值:“[BC2001] 未能找到文件“C:\WINDOWS\TEMP\j1tyq1k4.0.vb””。源错误: 
行 35: 
行 36: 
行 37:             this.ReportViewer1.LocalReport.SetParameters(new ReportParameter("count", dt.Rows.Count.ToString()));
行 38:             //this.ReportViewer1.LocalReport.SetParameters(new ReportParameter("SumMain", dal.GetAuditReportMainCount("1", txtStartCode.Text.Trim(), txtEndCode.Text.Trim())));
行 39:             ReportViewer1.LocalReport.Refresh();

解决方案 »

  1.   

    再顶你本机上C:\WINDOWS\TEMP\j1tyq1k4.0.vb 这个vb文件存在吗
      

  2.   

    1、 将三个DLL文件拷贝到Web服务器:
                         Microsoft.ReportViewer.Common.dll(在D:\Program Files\Microsoft Visual Studio 2010\ReportViewer找到)
                         Microsoft.ReportViewer.WebForms.dll(在D:\Program Files\Microsoft Visual Studio 2010\ReportViewer找到)
                         Microsoft.ReportViewer.ProcessingObjectModel.dll (可以去下载这个DLL文件)
                         或 使用cmd拷贝Microsoft.ReportViewer.ProcessingObjectModel.dll 
                           运行:cmd
                           cd C:\WINDOWS\assembly
                           dir
                           cd gac_msil
                           dir *reportview* /s
                           copyC:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel\9.0.0.0__b03f5f7f11d50a3a\
                                     Microsoft.ReportViewer.ProcessingObjectModel.dll C:\
                           copy C:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.WebDesign\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebDesign.dll C:\
                                    
            2、设置rdlc报表属性Build Action(生成动作)为Content(内容),改成这个属性值是不生成DLL的,是生成rdlc报表文件。
            3、RDLC报表不能用编译后的文件发布,直接拷贝编译之前的rdlc文件到Web服务器
            4、将ReportViewer.exe和ReportViewerLP.exe安装到客户服务器端就可以预览打印报表。