0

这是异常和内部异常消息以及堆栈跟踪。当我使用 Visual Studio 运行时,这真的很好。我使用了ReportViewerForMvc并通过 Nuget 安装。所以我确实引用了所有.dll。唯一的问题是,一旦我使用 unoeuro 托管,它就无法正常工作。

引发了“System.Web.HttpUnhandledException”类型的异常。

在 System.Web.UI.Page.HandleError(Exception e) 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
在 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
在 System .Web.UI.Page.ProcessRequest() 在 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
在 System.Web.UI.Page.ProcessRequest(HttpContext context) 在 ASP.reportviewerwebform_aspx.ProcessRequest(HttpContext context) 在 System .Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 本地报表处理时出错。

在 Microsoft.Reporting.WebForms.LocalReport.EnsureExecutionSession()
在 Microsoft.Reporting.WebForms.LocalReport.GetParameters() 在 ReportViewerForMvc.ReportViewerExtensions.SetProperties(LocalReport localReport, LocalReport 属性) 在 ReportViewerForMvc.ReportViewerExtensions.SetProperties(ReportViewer reportViewer, ReportViewer 属性)在 ReportViewerForMvc.ReportViewerWebForm.BuildReportViewer() 在 ReportViewerForMvc.ReportViewerWebForm.Page_Load(Object sender, EventArgs e) 在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) 在 System.Web.UI.Control.OnLoad(EventArgs e) 在 System.Web.UI.Control.LoadRecursive() 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

请帮我解决这个问题。我已经经历了很多线程,但找不到解决方案

4

1 回答 1

1

在不真正知道原因什么的情况下,我可以猜测它可能是什么。RDLC 报告文件(例如MyReport.rdlc)可能未正确部署到目标环境,或者在执行目录更改时未驻留在预期的文件夹(相对路径)中。

在 Visual Studio 中,确保Copy to Output DirectoryProperty 设置为Copy if newer/always,并且在 IIS 上执行时,文件可能出现在\bin目录中,而在本地,它们可能在bin\Debug.

当传入 的文件名时MyReport.rdlc,在我们的应用程序中,我们使其可配置并构造如下路径:

var rdlcFullPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["ReportingPath"], "MyReport.rdlc");

web.config文件中,添加路径设置:

<add key="ReportingPath" value="bin\Reports" />

您可以覆盖每个环境的设置以匹配目标结构。

于 2017-11-21T16:33:33.947 回答