Die SSRS-Berichtsdefinition ist neuer als Server

8

Ich habe in Visual Studio 2015 einige Berichte mit den neuesten Updates erstellt. Wenn ich versuche, die Berichte bereitzustellen, erhalte ich folgende Meldung:

  

Die Definition dieses Berichts ist nicht gültig oder wird von dieser Version von Reporting Services unterstützt.
  11:40:28 Fehler bei   Die Berichtsdefinition wurde möglicherweise mit einer höheren Version von Reporting Services erstellt oder enthält Inhalte, die nicht zu
gehören   11:40:28 Fehler bei   basierend auf Reporting Services-Schemas wohlgeformt oder nicht gültig Details: Die Berichtsdefinition weist ein ungültiges Ziel auf   11:40:28 Fehler bei   Namespace ' Ссылка ', das nicht aktualisiert werden kann.

Die ersten Zeilen der .rdl-Datei sind wie folgt aufgebaut:

%Vor%

Kann ich die Schemadefinition ändern? Wenn ja, zu was? Ich habe versucht, nur von 2016 bis 2014 oder 2012 zu wechseln, aber keiner hat funktioniert.

Gibt es einen Ort, wo ich gültige Definitionen sehen kann?

    
M Kenyon II 11.08.2016, 16:48
quelle

5 Antworten

25

Ich stieß tatsächlich auf ein ähnliches Problem, bei dem eine Änderung, die ich vornehmen musste, im Jahr 2016 zu einem Fehler "Undokumentierter Fehler / Ungültige RDL-Struktur" führte. Daher habe ich die RDL-Datei so bearbeitet, dass ich sie in einer früheren Version öffnen und bearbeiten konnte Änderungen. Nicht zu schwer, aber Sie müssen ein paar Tag-Änderungen vornehmen.

Für neue Berichte sollten Sie wahrscheinlich nur eine ältere Version verwenden, aber für vorhandene Berichte können Sie dies tun: (Ich kehrte zu 2008 zurück)

  • Ändern Sie das Bericht-Tag:
    • Entfernen Sie MustUnderstand="df"
    • Ändern Sie den xmlns-Wert in " Ссылка "
    • Löschen Sie das Attribut xmlns: df.
  • Löschen Sie den gesamten Block "ReportParametersLayout".
  • Löschen Sie das "df" -Tag und seinen Inhalt.
  • Löschen Sie die öffnenden und schließenden Tags "ReportSections" und "ReportSection" (nicht den Inhalt).

Tatsächlich hat er einen superhackigen Code geschrieben, um dies als Teil eines Blogposts zu machen, aber die manuelle Bearbeitung ist einfach genug.

    
bitnine 11.08.2016, 17:56
quelle
9

Die folgenden Einstellungen sollten auf die richtige Zielserverversion und den RDL aus dem Verzeichnis bin festgelegt werden. (Oder klicken Sie mit der rechten Maustaste auf Bereitstellen).

Die angenommene Antwort ist erheblich schwieriger / fehleranfällig / funktioniert wahrscheinlich nicht in mehreren Versionen von ssrs und muss bei jeder Änderung der rdl angewendet werden.

    
Trubs 03.01.2017 04:12
quelle
3

Ich bin auf dasselbe Problem gestoßen und so habe ich es gelöst,

  1. Legen Sie die Eigenschaft "TargetServerVersion" in den Berichtsprojekteigenschaften als Ihre alte Version des Berichtsservers fest.
  2. Erstellen Sie das Projekt.
  3. Laden Sie den Bericht in den Ordner bin und stellen Sie ihn auf dem alten Berichtsserver bereit.

Ihr Quellberichtformat und Ihr Namespace werden auf die neueste Version aktualisiert. Ordnerberichte werden jedoch so erstellt, dass sie mit der Zielversion des Berichtsservers kompatibel sind.

    
Amila Pradeep 29.08.2016 11:43
quelle
3

Ich bin kürzlich auf dieses Problem gestoßen. Ich habe festgestellt, dass ich nur zwei Elemente in der betreffenden RDL-Datei ändern musste.

  1. Ändern von:

    Bericht xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition" xmlns: rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"

    NACH:

    Melden Sie xmlns: rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns: cl="http://schemas.microsoft.com/sqlserver/reporting/2010/01/componentdefinition" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition"

Im Gegensatz zu anderen Antworten benötigte ich 2010 statt 2008. Ich würde eine .rdl-Datei überprüfen, die Sie bereits bereitgestellt haben.

  1. Entfernen Sie den Block "ReportParametersLayout".

Hinweis: Wenn ich den ReportSections-Block entfernt habe, hat es nicht funktioniert, wie andere bemerkt haben.

    
Drew Hansen 18.01.2018 17:26
quelle
0

Ich habe diese Aufgabe automatisiert.

Erstellen Sie ein Formular mit einem Textfeld namens "TextBoxFile" und eine Schaltfläche. Im Code der Klick-Schaltfläche:

%Vor%     
Gaëtan Wauthy 27.03.2018 09:04
quelle