Ошибка просмотра отчета. Ошибка просмотра - в поле Просмотр источника веб-страницы.

Я обнаружил следующее сообщение об ошибке, когда я проверил Просмотр источника веб-страницы, но веб-страница работает нормально. Наш тестовый результат обнаружил ошибку при выполнении тестов Assertion.

Ошибка конфигурации просмотра отчетов

Обработчик HTTP веб-контроля Report Viewer не зарегистрирован в файл приложения web.config. Добавить

<add verb=" * "
path="Reserved.ReportViewerWebControl.axd" type =
"Microsoft.Reporting.WebForms.HttpHandler,
Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" /> 

в system.web/httpHandlers раздел файла web.config или добавьте

<add
name="ReportViewerWebControlHandler" preCondition="integratedMode"
verb="*" path="Reserved.ReportViewerWebControl.axd"
type="Microsoft.Reporting.WebForms.HttpHandler,
Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />

в system.webServer/обработчики раздел для информационных служб Интернета 7 или более поздней версии

Почему это сообщение об ошибке появляется в источнике просмотра.

Примечание. В этом сообщении об ошибке есть тег div, который имеет стиль = "display: none"

Я пытаюсь выяснить, почему, но все это обсудили только это сообщение об ошибке, которое было выбрано на веб-странице. Изменения, предлагаемые для web.config, уже присутствуют в нашем файле конфигурации.

Ответ 1

Следующее было моим решением

  <system.web>
    <httpHandlers>
      <add verb=" * "
        path="Reserved.ReportViewerWebControl.axd" type =
        "Microsoft.Reporting.WebForms.HttpHandler,
        Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,
        PublicKeyToken=b03f5f7f11d50a3a" />
    </httpHandlers>
  </system.web>
  <system.webServer>
    <handlers>
      <add name="ReportViewerWebControlHandler" preCondition="integratedMode"    verb="*" path="Reserved.ReportViewerWebControl.axd" 
           type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,
           PublicKeyToken=b03f5f7f11d50a3a"/>
    </handlers>
  </system.webServer>

Ответ 2

Чтобы быть в безопасности, добавьте конфигурацию IIS6 и IIS7.

IIS6:

<system.web>
    <httpHandlers>
        <add verb=" * "
        path="Reserved.ReportViewerWebControl.axd" type =
        "Microsoft.Reporting.WebForms.HttpHandler,
        Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,
        PublicKeyToken=b03f5f7f11d50a3a" />
    </httpHandlers>
</system.web>

IIS7:

<system.webServer>
    <handlers>
      <add verb=" * "
        path="Reserved.ReportViewerWebControl.axd" type =
        "Microsoft.Reporting.WebForms.HttpHandler,
        Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,
        PublicKeyToken=b03f5f7f11d50a3a" />
    </handlers>
  </system.webServer>

Ответ 3

Я только что зарегистрировался в приложении, которое включает в себя элемент управления ReportViewer и который уже почти год выпускается без каких-либо проблем, и тот же контент находится в содержимом HTML.

Поэтому, учитывая тот факт, что этот div не отображается (атрибут CSS display:none), можно догадаться, что сообщение об ошибке, которое присутствует только для удобства отображения, должно произойти на самом деле. Если ошибка связана с чем-то на стороне клиента, то гораздо проще реализовать ее таким образом: все клиентские стороны script должны делать, чтобы отображать сообщение, изменяют атрибут стиля - нет необходимости манипулировать DOM для добавления сообщение об ошибке, и нет необходимости получать локализованное сообщение об ошибке на соответствующем языке в javascript (учитывая поддержку локализации ReportViewer через языковые пакеты, существует другая версия этого сообщения об ошибке на одном языке - гораздо проще справиться с этим на ASP.NET вместе со всем другим локализованным контентом, чем в браузере в javascript). Да, я здесь занимаюсь психологией!:)

Ответ 4

Вот как выглядит мое объявление управления просмотром отчета в web.config. Убедитесь, что у вас там что-то похожее. И добавьте, если у вас его нет. Версия элемента управления может быть не такой.

<configuration>
    ...
    </system.web>
        ...
        <httpHandlers>
            ...
            <add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
            ...
        </httpHandlers>
        ...
    </system.web>
    ...
</configuration>

Ответ 5

Для IIS 7 используйте следующий код в вашем web.config

      <system.webServer>
            <handlers>
                   <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
            </handlers>
      </system.webServer>

Ответ 6

У меня также была проблема с тем, что просмотрщик отчетов не отображается. После установки свойства отображения из браузера я получил свою ошибку как "Ошибка конфигурации Report Viewer".

Я обнаружил, что для некоторого параметра я отправляю неверные значения, т.е. "string.empty". Я изменил свой код, чтобы отправить значение или значение null в параметр. Теперь мой отчет отображается правильно. Я решил проблему, отправив правильные значения параметров отчета для отчета. Не пропустите ни одного параметра, чтобы назначить правильные значения или null.

Ответ 7

Следующий код выглядит следующим образом

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
  <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
</handlers>

Ответ 8

После изменения файла web.config в зависимости от версии IIS, попробуйте добавить эту часть кода:

  if(!IsPostBack){
        // Here codes about ReportViewer1 
    }

Вы можете проверить эту аналогичную проблему.