У нас был элемент управления MS ReportViewer 9.0.0.0 для пользовательского модуля DotNetNuke в (устаревшей) версии 4.8.2. При попытке обновиться до 10.0.0.0 мы сталкиваемся со следующей ошибкой:
PageLoadException: страница не может быть нулевой. Убедитесь, что эта операция выполняется в контексте запроса ASP.NET.
Вот соответствующий код ASCX для основного элемента управления View в модуле 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: страница не может быть нулевой
в System.Web.UI.ScriptManager.get_IPage()
...
в Microsoft.Reporting.WebForms.ReportViewer .Render(программа записи HtmlTextWriter)
...
в DotNetNuke.Framework.PageBase.Render(программа записи HtmlTextWriter)
Мой гугл-фу мне совсем не помогает. Я пробовал возиться с ScriptManager
в файле Default.aspx.vb DotnetNuke, экспериментировать со свойствами элемента управления ReportViewer и читать различные связанные статьи MSDN. Нет игральных костей.
Вопрос: как заставить ReportViewer 10.0.0.0 работать в DotNetNuke 4.8.x?