2013-07-22 1 views
0

Администратор обновил dev и тестовые серверы, добавив Report Viewer 2012 для меня.Сообщение об ошибке SSRS: запрос не удался с HTTP-статусом 400: неверный запрос

У меня нет доступа к тестовому серверу, но я администратор на dev-сервере. Я могу работать с тем, у кого есть доступ администратора к тестовому серверу, но мне нужно знать, что искать.

Мои отчеты SSRS, развернутые из Visual Studio 2012, были преобразованы в Microsoft.ReportViewer.WebForms 11.0 из версии 10.0.

Эти отчеты работают только на моем dev-сервере, но когда мой тестер QA использует отчет, первый раз на странице появляется сообщение об ошибке «Ошибка запроса с HTTP-статусом 400: неверный запрос».

Учтите, что по умолчанию ни один отчет не загружается.

Как только мы запрашиваем отчет, этот отчет отображается правильно, и сообщение об ошибке исчезает.

Я пытаюсь удалить это начальное сообщение об ошибке, так как оно запутывает конечного пользователя.

Есть ли у кого-нибудь идеи?

Заранее благодарен!

Ниже приведено код, показанный инструментами разработчика.

<DIV id=ctl00_Body_ReportViewer1_ctl09_VisibilityState ForNonReportContentArea="true" NewContentType="Microsoft.Reporting.WebFormsClient.ReportAreaContent.Error"><INPUT name=ctl00$Body$ReportViewer1$ctl09$VisibilityState$ctl00 value=Error type=hidden> </DIV><INPUT id=ctl00_Body_ReportViewer1_ctl09_ScrollPosition name=ctl00$Body$ReportViewer1$ctl09$ScrollPosition value="0 0" type=hidden><SPAN id=ctl00_Body_ReportViewer1_ctl09_Reserved_AsyncLoadTarget></SPAN> 
<DIV style="DISPLAY: none" id=ctl00_Body_ReportViewer1_ctl09_ReportControl><SPAN></SPAN><INPUT name=ctl00$Body$ReportViewer1$ctl09$ReportControl$ctl02 type=hidden><INPUT name=ctl00$Body$ReportViewer1$ctl09$ReportControl$ctl03 type=hidden><INPUT id=ctl00_Body_ReportViewer1_ctl09_ReportControl_ctl04 name=ctl00$Body$ReportViewer1$ctl09$ReportControl$ctl04 value=100 type=hidden> </DIV> 
<DIV style="WIDTH: 100%; HEIGHT: 100%" id=ctl00_Body_ReportViewer1_ctl09_NonReportContent> 
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 8pt"> 
<UL> 
<LI style="DISPLAY: inline">The request failed with HTTP status 400: Bad Request.</LI></UL></DIV></DIV> 

Это код в файле ASPX:

<asp:UpdatePanel ID="TFD_UP" runat="server"> 
    <ContentTemplate> 
     <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" 
      ProcessingMode="Remote" Height="100%" Width="100%" PromptAreaCollapsed="True" 
      ShowParameterPrompts="False" ShowPromptAreaButton="False" 
      ShowBackButton="False" ShowFindControls="False" ShowPrintButton="False" 
      ShowRefreshButton="False" ShowZoomControl="False" 
     ></rsweb:ReportViewer> 
     <rsweb:ReportViewer runat="server"></rsweb:ReportViewer> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="btnClick" EventName="Click" /> 
    </Triggers> 
    </asp:UpdatePanel> 

ответ

0

Вы, вероятно, имеют доступ к папке с правильными разрешениями (или сам элемент отчета), а не в каталог. Проверьте права доступа к каталогу, перейдя на SSRS сервер непосредственно в целом:

http: (servername)/Reports 

Нажмите кнопку «Параметры папок», а затем безопасность должна подойти. Вы должны добавить сюда соответствующих пользователей, если вы хотите, чтобы корень соединения не отображал ошибки. Вообще говоря, SSRS может быть набором настроек, каталогом дочерних элементов (которые также могут быть больше каталогов) или корневым каталогом. Основная целевая страница обычно при подключении кода к SSRS - это точка, показанная выше, если вы не укажете в коде позади или не настройте какую-либо другую отправную точку.

+0

Спасибо, мы можем задуматься над этим, но есть ли у вас какие-либо идеи, почему это может привести к обновлению до самой последней версии? – NicVerAZ

+0

Я не уверен, почему это произойдет, поскольку в большинстве случаев обновления берут с собой настройки политики. Я просто знаю, из того, что вы описываете, похоже, что для родительского объекта разные разрешения. Это может быть способ изменения формы веб-форм, я не уверен. Я просто знаю, что доступ - это распространенная проблема с SSRS, независимо от того, что делает внешний интерфейс. – djangojazz

1

Короче говоря, обновлено решение 2008 года до 2013 года, первоначально развернуто, а затем началось с развертывания всех, кроме двух отчетов. Трассировка вызовов службы в Fiddler показала, что выглядит как мусор в поле пароля источника данных. После того, как я снова ввел пароль для каждого источника данных с отказоустойчивым сообщением, ошибки исчезли.

Смежные вопросы