1

Ich bin durch viele Links gegangen, aber jetzt brauche ich jemanden, der mir besser helfen kann. Ich habe weder Erfahrung im Hosting noch in SSRS.Wie konsumieren SSRS lokal in asp.net-Anwendung

Nach einigen wenigen Websites, ich habe Business Intelligence -> "Reporting-Projekt" von Visual Studio in meiner bereits bestehenden Asp.net MVC App. Dann habe ich erfolgreich zwei rdl-Berichte erstellt, die ich sehr gut sehen kann. Jetzt ist die Frage, sie in asp.net-Anwendung zu konsumieren?

Schritte Ich habe ist:

1) Eröffnet IIS und erstellt eine neue Website mit Physical Verzeichnis "Pfad meines SSRS-Projekt". Ich kann diesen Ort jetzt sehen, wenn ich diese Website von IIS erkunde.

2) Jetzt kommt zu asp.net-Code. Ich habe bereits grundlegenden Code hinzugefügt, der erforderlich ist, um einen Bericht anzuzeigen, aber das Problem ist der "Pfad". Muss ich "Lokaler Serverpfad" oder "Remote" definieren? Was ist der Unterschied zwischen beiden? Benötigen sie den physischen Speicherort dieser rdl-Datei? Wenn es einen physischen Speicherort benötigt, wie kann ich das bekommen, weil sich die rdl-Datei in einem anderen Projekt befindet und nicht in meiner Haupt-Webanwendung vorhanden ist. Ich bin damit verwirrt. Irgendwann bekomme ich Fehler, wenn ich versuche, meinen Anwendungspfad anzugeben. Und für den unteren Code zeigt es mir diesen Fehler.

Der Remote-Name nicht aufgelöst werden konnte: 'report'

Hier ist die Projektstruktur:

enter image description here

Dies ist, was ich in der Steuerung haben

ReportViewer reportViewer = new ReportViewer 
     { 
      ProcessingMode = ProcessingMode.Remote 
     }; 

     //reportViewer.LocalReport.ReportPath = 
     // Request.MapPath(Request.ApplicationPath) + 
     // "~/Reports/Report3.rdl"; 

     //reportViewer.LocalReport.ReportPath = Path.GetFullPath("~/ReportingProject/Reports/Report3.rdl"); 
     //reportViewer.LocalReport.ReportPath = Path.Combine("~/ReportingProject/Reports/Report3.rdl"); 

     reportViewer.ServerReport.ReportServerUrl = new Uri("http://ReportServer/Reports/report3.rdl"); 


     //string solutiondir = Directory.GetParent(
     // Directory.GetCurrentDirectory()).Parent.FullName; 
     //// may need to go one directory higher for solution directory 
     //return XDocument.Load(solutiondir + "\\" + ProjectBName + "\\Mock\\myDoc.html") 

     reportViewer.Width = Unit.Percentage(100); 


     reportViewer.LocalReport.DataSources.Add(new 
      ReportDataSource("DataSet1", objList)); 

     reportViewer.LocalReport.Refresh(); 

     ViewBag.ReportViewer = reportViewer; 
+1

Sie müssen die 'ReportServer URL', nicht die' Reports URL' verwenden. 'http: // Servername/ReportServer/report3.rdl' Wenn Sie die Berichts-Manager-Erweiterung nicht über die Erweiterung rdl verfügen, benötigen Sie diese nicht in der URL-Zeichenfolge. –

+0

Es wird nicht funktionieren, auch nachdem dies getan wurde. reportViewer.ServerReport.ReportServerUrl = neue Uri ("http: //localhost/reportserver/report3.rdl"); Der Versuch, eine Verbindung mit dem Berichtsserver herzustellen, ist fehlgeschlagen. Überprüfen Sie Ihre Verbindungsinformationen und ob der Berichtsserver eine kompatible Version ist. Client gefunden Antwort Inhaltstyp von '', aber erwartet 'text/xml'. Die Anfrage ist mit einer leeren Antwort fehlgeschlagen. – Sandy

Antwort