在Azure云服务上动态设置rdlc文件时出现ReportViewer错误

时间:2015-02-25 11:37:17

标签: asp.net azure reportviewer

好的,这应该很简单但是,我无法弄清楚最新情况。 我有一个在Azure云服务中运行的ASP.NET Web应用程序,在一个aspx页面中有一个ReportViewer。在此页面的代码隐藏中,我使用以下行动态添加ReportViewer的设计.rdlc文件:

ReportViewer1.LocalReport.ReportPath = Server.MapPath("reports/myReportFile.rdlc");

当我在localhost上运行报表时,一切正常,但是当我发布到Azure云服务时,我收到以下错误:

  

无法找到路径的一部分   'F:\ sitesroot \ 0 \报告\ myReportFile.rdlc'。例外细节:   System.IO.DirectoryNotFoundException:找不到部分内容   路径'F:\ sitesroot \ 0 \ reports \ myReportFile.rdlc'。

这应该是显而易见的,对吗?文件路径无效或.rdlc文件不存在。 我尝试在Visual Studio上更改.rdlc文件属性,设置“复制到输出目录”=“始终复制”,并且我再次得到完全相同的错误。

观察: 我使用Azure工具/包(.cscfg + .cspkg)发布并通过Azure管理门户上传。

关于我接下来应该做什么的任何想法?

2 个答案:

答案 0 :(得分:2)

经过几个小时的研究,我找到了一个解决方案: https://social.msdn.microsoft.com/Forums/azure/en-US/f1eb4502-0549-4130-a0d9-9f9abf66c6ab/how-to-run-reportviewer-in-azure-?forum=windowsazuredevelopment

  

对于rdlc文件,默认情况下,“Build Action”是“Embedded Resource”   导致该文件将嵌入DLL中。设置“复制到   输出目录“到”复制始终“导致Report1.rdlc文件将   被复制到bin文件夹。知道这一点后,有两种选择   解决问题:

     
      
  1. 将“Build Action”设置为“Content”,然后在LocalReport.ReportPath Property中使用“Report1.rdlc”。

  2.   
  3. 将“复制到输出目录”设置为“始终复制”或“如果更新则复制”,然后在LocalReport.ReportPath属性中使用“bin \ Report1.rdlc”。

  4.         曾文超

建议#1解决了这个问题。

答案 1 :(得分:0)

在Windows窗体应用程序的报表查看器中找不到

rdlc 将“复制到输出目录”设置为“始终复制”或“如果更新则复制”,然后在LocalReport.ReportPath属性中使用“ bin \ Report1.rdlc”