我们在(旧版)4.8.2 版本中的自定义 DotNetNuke 模块上有一个 MS ReportViewer 9.0.0.0 控件。在尝试升级到 10.0.0.0 时,我们遇到以下错误:
PageLoadException:页面不能为空。请确保在 ASP.NET 请求的上下文中执行此操作。
以下是 DotNetNuke 模块中主视图控件的相关 ASCX 代码:
<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
<rsweb:ReportViewer ID="report" runat="server" ProcessingMode="Remote" />
此外,还有一些设置 的代码IReportServerCredentials
,我已经省略了那部分代码,因为问题发生在报告甚至呈现之前。
堆栈跟踪非常大,但这里有一些相关位:
DotNetNuke.Services.Exceptions.PageLoadException
System.InvalidOperationException:页面不能
在 System.Web.UI.ScriptManager.get_IPage()
...
在 Microsoft.Reporting.WebForms.ReportViewer.Render(HtmlTextWriter writer)
...
在 DotNetNuke。 Framework.PageBase.Render(HtmlTextWriter 编写器)
我的 Google-fu 根本没有帮助我。我试过摆弄ScriptManager
DotnetNuke 的 Default.aspx.vb 文件,玩弄 ReportViewer 控件的属性,并阅读各种相关的 MSDN 文章。没有骰子。
问题:如何让 ReportViewer 10.0.0.0 在 DotNetNuke 4.8.x 中工作?