У нас был элемент управления MS ReportViewer 9.0.0.0 на пользовательском модуле DotNetNuke в версии (legacy) 4.8.2. При попытке перейти на 10.0.0.0 бежим в следующую ошибку:ReportViewer 10.0.0.0 в DotNetNuke 4.8.X: PageLoadException
PageLoadException: Page cannot be null. Please ensure that this operation is being performed in the context of an ASP.NET request.
Вот соответствующий ASCX код для главного вида управления в модуле DotNetNuke:
<%@ 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: Page cannot be null
at System.Web.UI.ScriptManager.get_IPage()
...
at Microsoft.Reporting.WebForms.ReportViewer.Render(HtmlTextWriter writer)
...
at DotNetNuke.Framework.PageBase.Render(HtmlTextWriter writer)
Мой Google-фу не помогает мне на всех. Я пытался возиться с ScriptManager
в файле Default.aspx.vb DotnetNuke, играя со свойствами элемента управления ReportViewer и читая различные связанные статьи MSDN. Нет кубиков.
Вопрос: Как получить ReportViewer 10.0.0.0, работающий в DotNetNuke 4.8.x?