好的,这应该很简单但是,我无法弄清楚最新情况。 我有一个在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管理门户上传。
关于我接下来应该做什么的任何想法?
答案 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文件夹。知道这一点后,有两种选择 解决问题:
将“Build Action”设置为“Content”,然后在LocalReport.ReportPath Property中使用“Report1.rdlc”。
- 醇> 曾文超
将“复制到输出目录”设置为“始终复制”或“如果更新则复制”,然后在LocalReport.ReportPath属性中使用“bin \ Report1.rdlc”。
建议#1解决了这个问题。
答案 1 :(得分:0)
rdlc 将“复制到输出目录”设置为“始终复制”或“如果更新则复制”,然后在LocalReport.ReportPath属性中使用“ bin \ Report1.rdlc”