Meine Berichte funktionieren auf einem 32-Bit-Gerät einwandfrei, werden aber nicht auf 64-Bit geöffnet. 64 Bit sind erforderlich, da das Laden von Daten auf einem der Bildschirme zu einem Speicherproblem führt - daher kann es nicht mit 32 Bit arbeiten.
Bearbeiten # 1
useLegacyV2RuntimeActivationPolicy="true"
Bearbeiten Sie # 2
Quellcode zum Anzeigen des Berichts ist
%Vor%Und frmReportViewer FormLoad ist
%Vor%Bin ich irgendwo falsch gelaufen?
Bearbeiten Sie # 3
DataTable auf x86 und x64 sind gleich. (gespeichert die Daten in Xml und beide Dateien sind genau die gleichen).
Process Monitor zeigt an, dass mein Programm die Operation CreateFile
für folgende Dateien durchführt
C: \ WINDOWS \ Microsoft.Net \ Assembly \ GAC_64 \ CrystalDecisions.Web \ v4.0_13.0.2000.0__692fbea5521e1304 \ CrystalDecisions.Web.dll C: \ WINDOWS \ Microsoft.Net \ Assembly \ GAC_MSIL \ CrystalDecisions.Web \ v4.0_13.0.2000.0__692fbea5521e1304 \ CrystalDecisions.Web.dll C: \ WINDOWS \ Microsoft.Net \ Assembly \ GAC \ CrystalDecisions.Web \ v4.0_13.0.2000.0__692fbea5521e1304 \ CrystalDecisions.Web.dll C: \ WINDOWS \ Assembly \ GAC_64 \ CrystalDecisions.Web \ 13.0.2000.0__692fbea5521e1304 \ CrystalDecisions.Web.dll
Alles schlägt mit PATH NOT FOUND
Ergebnis fehl. Es gelingt auf
C: \ Windows \ Assembly \ GAC_MSIL \ CrystalDecisions.Web \ 13.0.2000.0__692fbea5521e1304 \ CrystalDecisions.Web.dll
und dann zwei BUFFER OVERFLOW
in derselben Datei.
Es passiert nur auf x64. Es gibt keine Operation, die mit CrystalDecisions.Web.dll
auf x86 zusammenhängt.
Was bedeutet es?
Dies ist möglicherweise keine vollständige "Antwort", da Sie immer noch Fehler beheben und nach Hilfe fragen, aber es ist zu lang für einen Kommentar. Momentan unterstützt SAP VS 2017 nicht, und es gibt Möglichkeiten, die damit zu tun haben, aber ich habe ähnliche Meldungen schon in VS 2010 gesehen, also geht es hier ...
Erraten Sie das in Ihrer app.config-Datei:
%Vor%oder genauer gesagt .NET wie:
%Vor%Längerer Problemlösungsprozess. Die Fehlermeldung würde normalerweise anzeigen, dass das DataSet (in diesem Fall DataTable) nicht zum Zeitpunkt der Verwendung im Berichtsobjekt festgelegt ist. Sie könnten dort einen Haltepunkt setzen und sehen, ob das wahr ist (wo SetDataSource verwendet wird).
Es kann sein, dass ich hier falsch liege und es bereits an diesem Punkt ein richtig gesetztes DataSet gibt, und das Problem tritt etwas später im Viewer auf. Ich bin schon vor langer Zeit auf Probleme wie diese gestoßen, und wenn die Erinnerung dies tut, war das der Weg, den ich genommen habe, um eine Lösung aufzuspüren.
Grundsätzlich bestand mein Problem darin, dass die EXE ADO-Objekte im Viewer verwendete. Ohne alles über Ihr Projekt zu wissen, würde ich diesen Pfad zum Debuggen starten.
Andere Fragen würden in VS 2015 funktionieren? Hat es jemals in X64 funktioniert und funktioniert nicht mehr? Funktioniert es für andere Operationen, wie können Sie auf das Berichtsobjekt programmatisch zugreifen, und es ist nur ein Fehler im Viewer?
Stellen Sie sicher, dass Sie den neuesten SP installiert haben. Ich verwende derzeit SP19, was mir keine Probleme bereitet.
Ich weiß, dass es ein Problem sein kann, die richtigen Download-Links zu finden. Dies könnte Ihnen helfen:
Ссылка
Da ich WPF-Anwendungen erstellt habe, die den bereitgestellten Viewer von CrystalReports verwenden, musste ich auch die folgende Einstellung in meinem App.config
Ich weiß nicht, ob das für dich nützlich ist oder nicht. Aber ich habe folgende Lösung gefunden, als ich Probleme mit dem Server 2012 hatte.
Framework 4.6 bewirkt, dass Crystal Reports für Visual Studio einen eindeutigen Ordnerpfad zum Crystalreportsviewer13-Ordner in IIS und IISExpress DEV erstellt.
Umgebung
%Vor%Reproduzieren des Problems
Uns ist dieses Problem bekannt. Eigentlich ist es mit .Net Framework 4.6, nicht nur auf Win10 oder Windows Server 2016 Vorschau beschränkt (diese OS standardmäßig installiert. Net 4.6). Wenn Sie .Net 4.6 auf Win7 installieren, wird dasselbe Problem auftreten. Die Hauptursache ist, dass MS das Update für .Net Framework 4.6 über Windows Update bereitstellt, dann wird sich die kleine Version von .Net 4.6 ändern. Für eine ASP.NET-Website, die auf den .Net 4.6 App-Pool abzielt, versucht der CR-Viewer, die Viewer-Ressourcendatei (js & amp; icon) unter .. \ aspnet_client \ system_web \ 4_6_xx \ crystalreportviewers13 \ zu finden. Das Highlight xx ist die kleine Version von .Net Framework 4.6. Auf Win10 RTM ist es 4_6_79; Bei Win7 + .Net 4.6 ist es 4_6_81, wenn der Benutzer KB3098786 installiert hat, wird es 4_6_118 ... Die Versionsnummer wird sich beim nächsten KB Update für .Net Framework 4.6 ändern. Also bitte eine BOSAP-Hülle dafür erstellen. Zumindest in SP16 müssen wir weitere Symbollinks hinzufügen, um verschiedene kleine Versionen von .Net Framework 4.6 zu unterstützen. Eine bessere Lösung besteht darin, den Pfad der geladenen Viewer-Ressourcendatei zu ändern, z. B. auf einen virtuellen Ordner unter IIS. Das musste im Viewer behoben werden und benötigt mehr Zeit. Wir werden versuchen es in SP16 zu implementieren ... Danke, Soda
Auflösung
Unsere Entwickler sind sich dieses Problems bewusst und wir sollten in der Lage sein, eine Reparatur in Service Pack 16 bereitzustellen
Das Problem hängt mit .Net Framework 4.6 zusammen.
Die Hauptursache ist, dass MS das Update für .Net Framework 4.6 über Windows Update bereitstellt
Die ASP.NET-Website zielt auf den .Net 4.6-App-Pool ab, der CR-Viewer versucht, die Viewer-Ressourcendatei (js & amp; icon) von
aus zu finden.. \ aspnet_client \ system_web \ 4_6_xx \ crystalreportviewers13 \
Die xx ist die kleine Version von .Net Framework 4.6.
%Vor%Die Versionsnummer wird sich ändern, wenn das nächste KB-Update für .Net Framework 4.6 installiert wird.
Die aktuelle Aufgabe besteht darin, die Datei Web.Config so zu aktualisieren, dass sie die aktualisierte Version des Frameworks enthält
Und dann kopieren Sie den \ CrystalReportsViewer13 Ordner in den neuen Pfad:
.. \ aspnet_client \ system_web \ 4_6_xx \ crystalreportviewers13 \
Für Updates und die neuesten Downloads gehen Sie bitte zu diesem Link:
Startseite ist:
Haben Sie eine Datenquelle oder Verbindung (z. B. odbc \ dao) mit 32-Bit in Ihrer Crystal Report DataSource? Es ist auch seltsam, dass Sie bereits 32-Bit- und 64-Bit-CR-Laufzeiten installiert haben, warum Sie CR-Versionen für Visual Studio installiert haben? Ich hatte ein ähnliches Problem wie Ihres, aber nachdem 32-Bit MDB und DAO durch DataSet ersetzt wurden, wird alles in Ordnung. Ich installierte sowohl 32-Bit- als auch 64-Bit-CR-Laufzeiten.
Tags und Links c# 64bit desktop-application .net-4.6.2 crystal-reports