2011-11-21 17 views
11

Raporty są wdrażane i działają, weryfikowane w Menedżerze raportów.Report Viewer Kontrola sieci w wersji 10 generuje błąd mimo prawidłowej konfiguracji

Moja aplikacja to aplikacja MVC2 z moim raportem na własnej stronie aspx. Ta strona działała z wersją 8 kontrolki przeglądarki raportów, ale przenieśliśmy się na nowe serwery, zaktualizowany serwer sql i staramy się zaktualizować naszą stronę, aby była zgodna.

Serwerami są Windows Server 2008 z IIS 7.5.

jestem testowania zarówno w Chrome i IE 9.

Pomimo moich usilnych starań, wciąż otrzymuję ten błąd:

Report Viewer Configuration Error

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.

Ale ja już to zrobione. W rzeczywistości, nawet czytać to od MSDN:

To use IIS 7.0 in Integrated mode, you must remove the HTTP handler in system.web/httpHandlers. Otherwise, IIS will not run the application, but will display an error message instead.

Wystarczy być bezpieczne, próbowałem combo ani podczas dodawania obsługi w IIS bezpośrednio, tylko obsługi HTTP serwer WWW w moim config, tylko obsługi HTTP w mojej konfiguracji i obu. początek

Przejdźmy z moim web.config

<configuration 
    <system.web> 
    <httpRuntime maxQueryStringLength="4096" /> 
    <compilation 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=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> 
     <add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> 
     </assemblies> 
     <buildProviders> 
      <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     </buildProviders> 
    </compilation> 
    </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> 
</configuration> 

mam zespoły, dostawca budować i procedurę obsługi. Co jeszcze może być nie tak?

Odpowiedz

6

znalazłem szybki i brudny obejścia - do swojej konfiguracji internetowej dodać to:

<location path="Reserved.ReportViewerWebControl.axd"> 
<system.web> 
    <authorization> 
    <allow users="*" /> 
    </authorization> 
</system.web> 

widziałem w Fiddler, że z jakiegoś powodu, gdy strona zwróciła Reserved.ReportViewerWebControl.axd zamiast coraz HTTP 200 serwer odpowiedzi wyśle ​​302 - przeniesione do login.aspx? Returnurl = "Zarezerwowane.ReportViewerWebControl.axd. Tak więc pozwolenie wszystkim użytkownikom na ścieżkę obsługi rozwiązuje problem:

+0

Jestem Josh potwierdzi to działa :) dzięki –

+0

w tym przypadku można proszę zaznaczyć odpowiedź zaakceptowana? – lstanczyk

+0

brakowało tam kluczowego słowa ... mam nadzieję, że Josh potwierdzi, że to działa! :) –

1

Myślałem, że jego ReportViewer Rendering Issue na IIS7 Ręcznie zmapowałem uchwyt reportviewera do IIS7 w ten sposób:

• Otwórz Menedżera internetowych usług informacyjnych (IIS) i wybierz aplikację internetową.

• W obszarze IIS kliknij dwukrotnie ikonę Mapowania obsługi.

• W okienku akcji po prawej stronie kliknij Dodaj zarządzany uchwyt.

• Na dialogowe Add Managed Handler, wprowadź następujące:

żądania trasy: Reserved.ReportViewerWebControl.axd

Typ: Microsoft.Reporting.WebForms.HttpHandler

Nazwa: Reserved-ReportViewerWebControl -axd

• Kliknij OK.

zmienił również przez WWW config dodając


Wciąż kopalni nie działa. Myślałem, że powyższe rozwiązanie pomoże innym.

+0

Tak, naprawiłem to dla mnie (IIS7, Server 2008) – odinel

-1

Mam próbuje to poprzez usunięcie niechcianych zespoły MVC z projektu ASP.NET. Tak więc prostym rozwiązaniem było usunięcie WebMatrix. *. Dll z folderu Bin w projekcie sieciowym, jako należącym do architektury mvc.