2017-11-21 8 views
0

Hier sind die beiden Ausnahme und die innere Ausnahme Nachrichten plus Stack-Trace. Das funktioniert wirklich gut, wenn ich mit Visual Studio arbeite. Ich habe ReportViewerForMvc verwendet und über Nuget installiert. Also habe ich alle. DLL referenziert. Das einzige Problem ist, dass es nicht funktioniert, sobald ich mit Unoeuro gehostet habe.MVC 5 Anwendung RDLC-Bericht löst eine Ausnahme nach dem Hosting, aber funktioniert gut mit Visual Studio

Ausnahme vom Typ 'System.Web.HttpUnhandledException' wurde ausgelöst.

bei System.Web.UI.Page.HandleError (Exception e) bei System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
bei System.Web.UI.Page.ProcessRequest (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
bei System.Web.UI.Page.ProcessRequest() bei System.Web.UI.Page.ProcessRequestWithNoAssert (Httpcontext context)
bei System.Web.UI.Page.ProcessRequest (Httpcontext Kontext) um ASP.reportviewerwebform_aspx.ProcessRequest (HttpContext Kontext) um System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() bei System.Web.HttpApplication.ExecuteStep (IExecutionStep Schritt, Boolean & completedSynchronously) ist ein Fehler aufgetreten bei der lokalen Berichtsverarbeitung.

bei Microsoft.Reporting.WebForms.LocalReport.EnsureExecutionSession()
bei Microsoft.Reporting.WebForms.LocalReport.GetParameters() bei ReportViewerForMvc.ReportViewerExtensions.SetProperties (LocalReport localReport, LocalReport Eigenschaften) bei ReportViewerForMvc. ReportViewerExtensions.SetProperties (Report Report, Report Eigenschaften) bei ReportViewerForMvc.ReportViewerWebForm.BuildReportViewer() am ReportViewerForMvc.ReportViewerWebForm.Page_Load (Object sender, EventArgse) bei System.Web.Util.CalliEventHandlerDel egateProxy.Callback (Objekt sender, EventArgs e) bei System.Web.UI.Control.OnLoad (EventArgs e) um System.Web.UI.Control.LoadRecursive() um System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Bitte helfen Sie mir, diese zu lösen. Ich habe schon durch viele Threads gegangen, konnte aber keine Lösung

+0

Möglich, dass die RDLC-Berichtsdatei nicht ordnungsgemäß in der Zielumgebung bereitgestellt wurde oder sich nicht im erwarteten Ordner (relative Pfade) befindet, wenn sich das ausführende Verzeichnis ändert – thmshd

+0

Bingo !!! Ich habe vergessen, das zu überprüfen. Ja, das war das Problem. Setzen Sie es als die Antwort. Ich werde akzeptieren !!! Wie man es immer veröffentlichen lässt? Kann ich es erreichen, indem ich auf Ausgabeverzeichnis kopieren - Immer kopieren? –

+0

hinzugefügt meine Antwort, mit MSDeploy-basierte Bereitstellung, denke ich, "Kopieren, wenn neuer" ist in unserem Fall ausreichend – thmshd

Antwort

1

ohne wirklich zu wissen, was die Ursache ist, ich denke, kann finden, was es könnte sein. Es ist möglich, dass die RDLC-Berichtsdatei (z. B. MyReport.rdlc) nicht ordnungsgemäß in der Zielumgebung bereitgestellt wurde oder sich nicht im erwarteten Ordner (relative Pfade) befindet, wenn sich das ausführende Verzeichnis ändert.

In Visual Studio, stellen Sie sicher, dass Copy to Output Directory Eigentum zu Copy if newer/always gesetzt ist, und wenn auf IIS ausgeführt wird, könnten die Dateien innerhalb \bin Verzeichnisses angezeigt, während lokal, sie innerhalb bin\Debug wahrscheinlich ist.

Wenn in dem Dateinamen von MyReport.rdlc, in unserer Anwendung vorbei, machen wir es konfigurierbar und den Pfad so konstruieren:

var rdlcFullPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["ReportingPath"], "MyReport.rdlc"); 

In der web.config-Datei den Pfad Einstellung:

<add key="ReportingPath" value="bin\Reports" /> 

Sie können die Einstellung für jede Umgebung überschreiben, die der Zielstruktur entspricht.

Verwandte Themen