2013-05-11 12 views
37

Ich versuche, den Berichts-Viewer in asp.net zu verwenden und habe meine Website hochgeladen. Wenn jedoch meine Seite, um den Report Viewer enthält, geladen wird, zeigt es die folgende Fehlermeldung:Datei oder Assembly konnte nicht geladen werden 'Microsoft.ReportViewer.WebForms'

Could not load file or assembly 'Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Dies ist mein erstes Mal, eine ASP.NET-Website bereitstellen, so dass ich bin mir nicht sicher, was das Problem ist.

+0

Siehe diesen Beitrag: [Datei oder Assembly konnte nicht geladen werden Microsoft.ReportViewer.WebForms.XmlSerializers] (http://stackoverflow.com/questions/7494641/could-not-load-file-or-assembly-microsoft-reportviewer -webforms-xmlserializers) –

Antwort

0

Laden Sie die Datei Microsoft.ReportViewer.WebForms.dll in Ihr bin-Verzeichnis Ihrer Webanwendung hoch.

Sie finden diese DLL-Datei im Verzeichnis bin Ihrer lokalen Webanwendung.

+0

hey danke @Amitt Mittal, ich habe bereits Verweis auf Microsoft.ReportViewer.WebForms.dll, sowie Microsoft.ReportViewer.Common.dll – Krishna

+0

hinzugefügt Da Sie Fehler nach dem Hochladen erhalten, bedeutet dies, dass die Berichts-Viewer-DLLs sind nicht auf dem Server installiert. Aus diesem Grund müssen Sie entweder die Steuerelemente des Berichts-Viewers als Server installieren oder die DLL-Dateien manuell in das Verzeichnis bin hochladen. –

52

Dieser Link hat mir einen Anhaltspunkt, dass ich nicht ein erforderliches Update (meine problemed besorgt Version nr, v11.0.0.0)

ReportViewer 2012 Update 'Gotcha' to be aware of

ich installiert das Update SQLServer2008R2SP2

installiert haben

ich heruntergeladen ReportViewer.msi, die Microsoft® System CLR Types for Microsoft® SQL Server® 2012 (look halfway down the page for installer) installiert haben erforderlich

im GAC jetzt verfügbar WebForms v1 war 1.0.0.0 (C:\Windows\assembly\Microsoft.ReportViewer.WebFormsv11.0.0.0 sowie Microsoft.ReportViewer.Commonv11.0.0.0)

+3

auch benötigt, um den Anwendungspool neu zu starten, bevor die neu installierten DLLs abgeholt wurden. –

22

Sie müssen beide Microsoft.ReportViewer.WebForms und Microsoft.ReportViewer.Common verweisen und die Copylocal Eigenschaft auf true gesetzt. Dies führt dazu, dass die DLL in unser bin-Verzeichnis kopiert wird (beide sind notwendig).

+4

Ich habe die obigen Schritte befolgt und auf 'Microsoft.ReportViewer.WebForms' (v11) verwiesen, kann aber' Microsoft.ReportViewer.Common' (v11) nicht finden. Irgendwelche Ideen, warum ich die "gemeinsame" Bibliothek nicht sehen kann? – philreed

+1

Ich fand Microsoft.ReportViewer.Common in C: \ Windows \ assembly \ GAC_MSIL \ ..., dank [diese Antwort] (http://stackoverflow.com/a/25797192/560114). –

+0

Ich habe ReportViewer wie in einer vorherigen Antwort installiert, aber das hat nicht funktioniert. Diese Antwort brachte mich zu einem Punkt, an dem ich eine neue Ausnahme erhielt, die mir sagte, dass ich ReportViewer zu meiner Datei web.config hinzufügen sollte. Sobald ich web.config repariert habe, wurde ich sortiert. – Resource

1

Ich lief in den gleichen Fehler. Meine Web-App wurde auf Report Viewer Version 10.0 verwiesen. Wenn 11.0 installiert ist, wird eine Umleitung in der 10.0 .dll zu 11.0 hinzugefügt. Dies wurde zu einem Problem, als 11.0 deinstalliert wurde, da dies die Weiterleitung in der 10.0-DLL nicht korrigiert. Die Fehlerbehebung in meinem Fall bestand darin, einfach 10.0 zu deinstallieren und neu zu installieren.

8

Ich habe das Problem, indem das Kopieren sowohl

  • Microsoft.ReportViewer.WebForms.dll von C:\Program Files (x86)\Microsoft Visual Studio 12.0\ReportViewer
  • und Microsoft.reportviewer.common.dll von C:\Program Files\Microsoft Office\Office15\ADDINS\PowerPivot Excel Add-in
gelöst

in bin Ordner (Website).

Natürlich web.config müssen:

<httpHandlers> 
     <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" validate="false" /> 
    </httpHandlers> 

    <assemblies> 

     <add assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" /> 
     <add assembly="Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" /> 
    </assemblies> 

    <buildProviders> 
     <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> 
    </buildProviders> 

    <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> 
    </system.webServer> 

Und das ist alles. Für mich ist ok.

Hoffe, das hilft.

+0

** validate = "false" **, ** system.webServer ** 'Validierung validateIntegratedModeConfiguration =" false "' und 'preCondition =" integratedMode "' benötigt? – Kiquenet

23

Ich habe Microsot.ReportViewer.2012.Runtime nuget package installiert und das Problem wurde gelöst, ohne ReportViewer zu installieren.msi oder SQL-Feature-Pack 12

enter image description here

+2

Das hat für mich funktioniert. Ich brauchte v12 .dlls auf einem Build-Server (TeamCity), auf dem nur v11 verfügbar war. Es gibt ein Release-Paket für 2015, das auf NuGet – Killnine

+1

verfügbar ist. Dies half, es gibt viele Autoren in [nuget] (https://www.nuget.org/packages?q=Microsoft.ReportViewer), aus denen Sie auswählen können, aber wie in der Antwort vorgeschlagen Ich benutze das Paket von Autor 'Fornax' und [hier] (https://www.nuget.org/packages/Microsoft.ReportViewer.2012.Runtime/) erstellt ist ** Link zu installieren via nuget ** – stom

+0

Ich denke, diese Antwort Einen Tag für mich speichern – MichaelMao

0

Ich hatte diesen Fehler mit einem alten webforms App. Stellt sich heraus, dass eine Zeile in dem Markup das Problem verursacht hat. Ich habe es entfernt und der Fehler ist verschwunden.

<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %> 
0

Ich hatte diesen Fehler, wenn sie von Version 10.0.0.0, dh "Microsoft.ReportViewer.WebForms, Version = 10.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" going />

auf Version auch 11.0.0.0, dh

"Microsoft.ReportViewer.WebForms, Version = 11.0.0.0, Culture = neutral, PublicKeyToken = 89845dcd8080cc91"

Es dauerte eine Weile, bis ich, dass nicht nur die Version verstanden geändert wurde, aber der öffentliche Tokenschlüssel, wie du oben sehen kannst.

0

Ich hatte den gleichen Fehler für ein anderes Paket. Mein Problem war, dass ein abhängiges Projekt eine andere Version referenzierte. Ich änderte sie, um die gleiche Version zu sein und alles war gut.

0

Meine Lösung ist:

  1. kopieren dll Microsoft.ReportViewer.WebForms.dll in Bin-Ordner in Ihrem Projekt.
  2. Entfernen Sie Ihre Referenz.
  3. Neuen Verweis vom Ordner bin hinzufügen.

Ich hoffe, das kann helfen.

Verwandte Themen