好的,这应该很容易,但是我无法弄清楚是怎么回事。我有一个在Azure云服务中运行的ASP.NET Web应用程序,并且在aspx页面之一中有一个ReportViewer。在此页面的代码后面,我用以下代码行动态添加ReportViewer的design .rdlc文件:
ReportViewer1.LocalReport.ReportPath = Server.MapPath("reports/myReportFile.rdlc");
当我在localhost上运行报表时,一切正常,但是当我发布到Azure云服务时,出现以下错误:
找不到路径'F:\ sitesroot \ 0 \ reports \ myReportFile.rdlc'的一部分。异常详细信息:System.IO.DirectoryNotFoundException:找不到路径'F:\ sitesroot \ 0 \ reports \ myReportFile.rdlc'的一部分。
那应该很明显,对不对?文件路径无效或.rdlc文件不存在。我尝试更改Visual Studio上的.rdlc文件属性,将“复制到输出目录”设置为“始终复制”,然后再次遇到完全相同的错误。
观察结果:我正在使用Azure工具/软件包(.cscfg + .cspkg)进行发布,并通过Azure管理门户上载它们。
关于下一步我应该做什么?
经过几个小时的研究,我在这里找到了解决方案:https : //social.msdn.microsoft.com/Forums/azure/en-US/f1eb4502-0549-4130-a0d9-9f9abf66c6ab/how-to-run-reportviewer-in -azure-?forum = windowsazuredevelopment
对于rdlc文件,默认情况下,“生成操作”为“嵌入资源”,导致该文件将被嵌入DLL。将“复制到输出目录”设置为“始终复制”会导致将Report1.rdlc文件复制到bin文件夹。知道这一点之后,有两种方法可以解决此问题:
将“生成操作”设置为“内容”,然后在LocalReport.ReportPath属性中使用“ Report1.rdlc”。
将“复制到输出目录”设置为“始终复制”或“如果更新则复制”,然后在LocalReport.ReportPath属性中使用“ bin \ Report1.rdlc”。
Wenchao Zeng
建议1解决了该问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句