11

I report vengono distribuiti e funzionanti, verificati in Gestione report.Report Viewer Web Control versione 10 fornisce errore nonostante la configurazione corretta

La mia applicazione è un'app MVC2 con il mio rapporto sulla propria pagina aspx. Questa pagina funzionava con la versione 8 del controllo del visualizzatore di report, ma ci siamo spostati su nuovi server, server sql aggiornato e stiamo tentando di aggiornare il nostro sito web in modo che corrispondesse.

I server sono Windows Server 2008 con IIS 7.5.

sto testando sia in Chrome e IE 9.

Nonostante i miei sforzi, ho ancora ottenere questo errore:

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.

Ma, ho già fatto questo. in effetti, ho anche letto questo da 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.

Giusto per essere sicuro, ho provato una combinazione di alcuno, mentre l'aggiunta del gestore in IIS direttamente, solo il gestore HTTP web server nel mio config, solo il gestore HTTP nella mia configurazione, ed entrambi. inizio

Let con il mio 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> 

Ho le assemblee, il provider di costruire, e il gestore. Cos'altro potrebbe essere sbagliato?

risposta

6

ho trovato una soluzione rapida e sporca - per il vostro web config aggiungere questo:

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

ho visto in violinista che per qualche motivo quando la pagina richiesta Reserved.ReportViewerWebControl.axd invece di ottenere HTTP 200 server di risposta invierà 302 - spostato a login.aspx? Returnurl = "Reserved.ReportViewerWebControl.axd. Quindi consentire a tutti gli utenti del percorso del gestore di risolvere il problema.

+0

io sono josh confermerò questo funziona :) grazie –

+0

in questo caso puoi contrassegnare la risposta come accettata? – lstanczyk

+0

manca una parola chiave lì ... spero che josh confermerà che funziona! :) –

1

Ho pensato che il suo problema di rendering ReportViewer su IIS7 Ho mappato manualmente il mio handle reportviewer su IIS7 in questo modo:

• Aprire Gestione Internet Information Services (IIS) e selezionare la propria applicazione Web.

• Nell'area IIS, fare doppio clic sull'icona Mappature dell'handler.

• Nel riquadro azioni sulla destra, fare clic su Aggiungi gestore gestito.

• Alla Add Managed finestra Handler, immettere il seguente: percorso

Richiesta: Reserved.ReportViewerWebControl.axd

Tipo: Microsoft.Reporting.WebForms.HttpHandler

Nome: riservato-ReportViewerWebControl -axd

• Fare clic su OK.

cambiato anche via web config aggiungendo


ancora mia non funziona. Pensavo che la soluzione di cui sopra avrebbe aiutato gli altri.

+0

Sì, questo l'ha risolto per me (IIS7, Server 2008) – odinel

-1

Ho provato questo rimuovendo gli assembly mvc indesiderati dal progetto asp.net. Quindi la soluzione più semplice era rimuovere WebMatrix. *. Dll dalla cartella Bin nel progetto web come quello che appartiene al framework mvc.

Problemi correlati