Как устранить ошибки регистрации VS 2010 ASP.Net ReportViewer HttpHandler?

Это сводит меня с ума — у меня есть веб-приложение с существующим отчетом, который без проблем отображается в версии 10 ReportViewer. Мы расширяем сайт, и я создал новый отчет на основе второго локального бизнес-объекта (мы интегрируемся с веб-сервисами NetSuite). Страница загружает и запрашивает данные, которые возвращаются обратно нормально, но страница выдает исключение в сгенерированной разметке при попытке создать экземпляр ReportViewer: ошибка времени выполнения Microsoft JScript: «Microsoft» не определена.

Нажатие «Продолжить» загружает страницу с текстом ошибки:

The Report Viewer Web Control HTTP Handler has not been registered in the   application's web.config file. Add <add verb="*" path="Reserved.ReportViewerWebControl.axd" type = "Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> to the system.web/httpHandlers section of the web.config file, or add <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" /> to the system.webServer/handlers section for Internet Information Services 7 or later.

Я запускаю этот локальный хост с сервером времени выполнения VS ASP.Net. Очевидно, что первое средство просмотра отчетов не могло загрузить свой отчет, если моя веб-конфигурация была неправильной, так что это не может быть так.

Я успешно загрузил второй отчет один раз, но многие последующие попытки приводят к тому, что указано выше. Я попытался удалить отчет на новой странице и скопировать тот, который работает с исходной страницы, указав на его отчет/источник данных, и я получаю тот же результат. Сбивает с толку!


person Michael Conner    schedule 13.07.2010    source источник


Ответы (4)


Я считаю, что вам нужно добавить ключ в файл web.config. Вам также необходимо добавить ссылку на компонент ReportView внутри файла aspx, в котором есть средство просмотра отчетов. Web.config должен выглядеть примерно так

 <assemblies>
    <add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
    <add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
</assemblies>
<httpHandlers>
   <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" />
</httpHandlers>

Файл Aspx должен располагаться в верхней части HTML-кода.

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
person MikeTWebb    schedule 13.07.2010

Я нашел решение для себя:

Поскольку я использую интегрированный конвейерный режим, мне нужно добавить в корневой файл web.config следующее:

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

Обратите внимание, что конфигурация находится в разделе system.webServer, а не в system.web.

Надеюсь, поможет.

person thepirat000    schedule 09.10.2012
comment
вам нужно добавить обработчик в system.webserver для iis 7 и выше, как указано в сообщении об ошибке средства просмотра отчетов. - person mohas; 27.01.2014

Спасибо, Майк, все это есть в WebConfig и на новой странице. Просто кажется, что добавление новой формы с другим средством просмотра отчетов генерирует исключение.

Может быть, проблема с сервером разработки в VS2010? Я собираюсь попробовать запустить IIS на локальном хосте и посмотреть, есть ли разница.

Майкл

person Michael Conner    schedule 13.07.2010

Я столкнулся с этой проблемой, и я очень подозреваю, что она решаема. Что я сделал, так это использовал версию = 9.0.0.0, которая, казалось, легко работала. Однако это беспокойно, так как вам нужно редактировать XML или использовать VS2008 при внесении изменений в файл отчета.

person mugume david    schedule 18.12.2011