У меня проблема с моим просмотрщиком отчетов, где ничего не видно, даже элемент управления.Если я добавляю другой контент, он отображается, а отчет - нет.Я использую версию 9.0.0.0 элемента управления с SSRS 2005 внутри приложения MVC 2.0.Я построил и развернул отчет на сервере.Я подтвердил, посмотрев на сервер отчетов и запустив его там.
- Мое приложение - MVC 2.0
- Я добавил обычную страницу веб-форм в корень сайта.Я поместил его в форму, runat = server и включил viewstate
- Я добавил исключение маршрутизации .aspx
- Мой код настроен аналогично каждому примеру, который я могу найти
- Мой webconfig настроен (возможно, именно в этом моя проблема)
- Я настроил ручной тест, введя правильные значения, и получил ту же пустую страницу.
- У меня естьссылка на версии 9.0.0.0 для Microsoft.ReportViewer.WebForms и Microsoft.ReportViewer.Common, и, как вы можете видеть, мой web.config соответствует моим ссылкам.
Страница выглядит белой - элемент управлениявидимый.Ошибки не выбрасываются.Насколько я помню, на странице должен быть хотя бы пустой элемент управления Reportviewer, но там вообще ничего нет.
Несколько других странностей - если я удалю настройку параметра, ошибок не возникнет.Я также добавил код для отправки учетных данных, но он не работал даже при отправке учетных данных для учетной записи администратора.
Report.aspx
<%@ Page Language="C#" AutoEventWireup="true" ViewStateMode="Enabled" CodeBehind="Report.aspx.cs" Inherits="MySite.Web.Report" %>
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<html>
<body>
<form id="form1" runat="server">
<rsweb:ReportViewer ID="reportViewer" EnableViewState="True" runat="server" />
</form>
</body>
</html>
Исключения маршрутизации
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
Код за
protected void Page_Load(object sender, EventArgs e)
{
var qs = ReportQueryString.Parse(Request.QueryString["R"]);
reportViewer.ServerReport.ReportServerUrl = ConfigurationHelper.Reports.ReportServerUrl;
reportViewer.ServerReport.ReportPath = String.Format(ConfigurationHelper.Reports.ReportPath, qs.ReportName);
var result = from p in qs.Parameters
select new ReportParameter(p.Key, p.Value);
reportViewer.ServerReport.SetParameters(result);
reportViewer.ServerReport.Refresh();
}
Web.config
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
</assemblies>
<buildProviders>
<add type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" extension=".rdl" />
</buildProviders>
</compilation>
<pages>
<namespaces>
<add namespace="Microsoft.Web.Mvc" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Drawing" />
</namespaces>
</pages>
<httpHandlers>
<add type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" path="Reserved.ReportViewerWebControl.axd" verb="*" />
</httpHandlers>
РЕДАКТИРОВАТЬ:
По запросу, вот источник страницы.Кстати, я использую Chrome, но я попробовал IE с тем же результатом.
<html>
<body>
<form method="post" action="Report.aspx?R=rYeJ28xc7emx1PJPgiRkOi1lXjmmNE6pF7aJrEJ443w*" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE0NzMwNTUwMTgPZBYCAgEPZBYCAgEPFCsABA8WAh4OUmVuZGVyaW5nU3RhdGULKZUBTWljcm9zb2Z0LlJlcG9ydGluZy5XZWJGb3Jtcy5SZXBvcnRSZW5kZXJpbmdTdGF0ZSwgTWljcm9zb2Z0LlJlcG9ydFZpZXdlci5XZWJGb3JtcywgVmVyc2lvbj05LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2ECZCgpWFN5c3RlbS5HdWlkLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkkOTQ5NWQxOTEtMmVmMy00OTJlLTk1ZTgtMzRhZDBkYWI4ZGM4AgEUKwABFCsAAgIBZBYKZg8PFgIeB1Zpc2libGVoZGQCAQ8PFgIfAWhkFgICCA8PFgIfAWhkZAIGDxYCHgVWYWx1ZQUBMGQCBw8WAh8CBQVmYWxzZWQCCA8WAh8CBQVmYWxzZWRkvlE8tEXOwYRIWVLykp+GFwUxbrW+MAtpUdojqbM994U=" />
</div>
<script src="/Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=9.0.30729.4402&Name=Microsoft.Reporting.WebForms.Scripts.ReportViewer.js" type="text/javascript"></script>
<div class="aspNetHidden">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBgLgrv+UCwL8sqiiBgL8sqyiBgL8srCiBgL8srSiBgL8stiiBkbkdSlUJxfVD65mS2OQpfO01z367cPQhXOdmZguuzmc" />
</div>
<div id="reportViewer" style="display:inline-block;height:400px;width:100%;">
<Script language="javascript"><!--
if (document.getElementById('reportViewer') != null)
{
document.getElementById('reportViewer').ClientController = new RSClientController("reportViewer_ctl03", "ReportFramereportViewer", "/Reserved.ReportViewerWebControl.axd?Mode=true&ReportID=b003c2a678b44c71b949617a693d4f8c&ControlID=9495d1912ef3492e95e834ad0dab8dc8&Culture=1033&UICulture=1033&ReportStack=1&OpType=DocMapArea&Controller=reportViewer&RootLabel=&BackColor=%23ECE9D8&Border=1px+Black+Solid&Font=font-family%3aVerdana%3bfont-size%3a8pt%3b", "25%", false, "/Reserved.ReportViewerWebControl.axd?Mode=true&ReportID=2558c6ccaa09444ea46bd3062bc553dd&ControlID=9495d1912ef3492e95e834ad0dab8dc8&Culture=1033&UICulture=1033&ReportStack=1&OpType=ReportArea&Controller=reportViewer&LinkTarget=_top", true, true, true, true, true, true, "reportViewer_ctl06", false, "\/Reserved.ReportViewerWebControl.axd?Mode=true&ReportID=66fb690f271c48d59bc881cd0f07421d&ControlID=9495d1912ef3492e95e834ad0dab8dc8&Culture=1033&UICulture=1033&ReportStack=1&OpType=Export&FileName=&ContentDisposition=OnlyHtmlInline&Format=", "PrintFramereportViewer", "\/Reserved.ReportViewerWebControl.axd?Mode=true&ReportID=c1c1698c78c7476b8a04e03424d3a36c&ControlID=9495d1912ef3492e95e834ad0dab8dc8&Culture=1033&UICulture=1033&ReportStack=1&OpType=PrintHtml", "reportViewer_ctl07", "reportViewer_ctl00", "reportViewer_ctl08");
document.getElementById('reportViewer').ClientController.PostBackAction =
function(actionType, actionParam)
{
document.getElementById("reportViewer_ctl04").value = actionType;
document.getElementById("reportViewer_ctl05").value = actionParam;
__doPostBack('reportViewer','');
};
}
--></Script><input type="hidden" name="reportViewer$ctl04" id="reportViewer_ctl04" /><input type="hidden" name="reportViewer$ctl05" id="reportViewer_ctl05" /><input type="hidden" name="reportViewer$ctl06" id="reportViewer_ctl06" value="0" /><input type="hidden" name="reportViewer$ctl07" id="reportViewer_ctl07" value="false" /><input type="hidden" name="reportViewer$ctl08" id="reportViewer_ctl08" value="false" /><noscript>
Your browser does not support scripts or has been configured not to allow scripts.
</noscript><Script language="javascript"><!--
document.getElementById('reportViewer').ClientController.CustomOnReportLoaded = function() {};
document.getElementById('reportViewer').ClientController.CustomOnAsyncPageChange = function() {};
document.getElementById('reportViewer').ClientController.CustomOnDocMapVisibilityChange = function() {};
document.getElementById('reportViewer').ClientController.CustomOnPromptAreaVisibilityChange = function() {};
document.getElementById('reportViewer').ClientController.CustomOnReloadDocMap = function() {};
--></Script>
</div><iframe name="reportViewerTouchSession0" id="reportViewerTouchSession0" onload="if (frames['reportViewerTouchSession0'].location != 'javascript:\'\'') frames['reportViewerTouchSession0'].location.replace('javascript:\'\'');" src="javascript:''" style="position:absolute;width:0;height:0;border-width:0;visibility:hidden;">
</iframe><script type="text/javascript">
setTimeout("frames['reportViewerTouchSession0'].location.replace('\\\/Reserved.ReportViewerWebControl.axd?Mode=true&ReportID=dd0df78cbe0d4c119d2af4e5a13a33b7&ControlID=9495d1912ef3492e95e834ad0dab8dc8&Culture=1033&UICulture=1033&ReportStack=1&OpType=SessionKeepAlive&TimerMethod=KeepAliveMethodreportViewerTouchSession0&CacheSeed=' + encodeURIComponent(Date()));", 0);function KeepAliveMethodreportViewerTouchSession0() {setTimeout("frames['reportViewerTouchSession0'].location.replace('\\\/Reserved.ReportViewerWebControl.axd?Mode=true&ReportID=dd0df78cbe0d4c119d2af4e5a13a33b7&ControlID=9495d1912ef3492e95e834ad0dab8dc8&Culture=1033&UICulture=1033&ReportStack=1&OpType=SessionKeepAlive&TimerMethod=KeepAliveMethodreportViewerTouchSession0&CacheSeed=' + encodeURIComponent(Date()));", 1140000);}
</script><Script language="javascript"><!--
document.getElementById('reportViewer').ClientController.ShowInitialWaitFrame();
--></Script>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
</form>
</body>
</html>