Приложение MVC 5 RDLC Report выдает исключение после хостинга, но отлично работает с visual studio
Вот и исключение и внутренние сообщения об исключении плюс трассировка стека. Это работает очень хорошо, когда я работаю с Visual Studio. Я использовал ReportViewerForMvc и установил через Nuget. Так что у меня есть все.dll, на которые ссылаются. Единственная проблема в том, что он не работает, когда я принимал у себя unoeuro.
Исключение типа "System.Web.HttpUnhandledException" было сгенерировано.
в System.Web.UI.Page.HandleError(исключение e) в System.Web.UI.Page.ProcessRequestMain(логическое значение includeStagesBeforeAsyncPoint, логическое значение includeStagesAfterAsyncPoint)
в System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
в System.Web.UI.Page.ProcessRequest() в System.Web.UI.Page.ProcessRequestWithNoAssert(контекст HttpContext)
по адресу System.Web.UI.Page.ProcessRequest (контекст HttpContext) по адресу ASP.reportviewerwebform_aspx.ProcessRequest(контекст HttpContext) по адресу System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IEp.Web.HtpApplication.IEp..ExecuteStep (шаг IExecutionStep, логическое и завершено синхронно) Произошла ошибка во время локальной обработки отчета.в Microsoft.Reporting.WebForms.LocalReport.EnsureExecutionSession()
в Microsoft.Reporting.WebForms.LocalReport.GetParameters() в ReportViewerForMvc.ReportViewerExtensions.SetProperties(свойства LocalReport localReport, LocalReport) в ReportViewerForMvc.ReportViewerExtensions.SetProperties(свойства ReportViewer reportViewer, ViewViewererWerViewer в ReportReerMerViewerViewerViewerWerViewViewerWerView) для ReportReportFervViewViewViewViewerWerViewReViewFerView для ViewReViewFireView для просмотра отчетов для файловой базы данных (ReportReportFervReviewFervViewViewViewerWerWerViewView для просмотра отчетов для файловой базы данных) на веб-сайте ReportReport.Page_Load(Отправитель объекта, EventArgs e) в System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Отправитель объекта, EventArgs e) в System.Web.UI.Control.OnLoad(EventArgs e) в System.Web.UI.Control.LoadRecursive() в System.Web.UI.Page.ProcessRequestMain(логическое значение includeStagesBeforeAsyncPoint, логическое значение includeStagesAfterAsyncPoint)
Пожалуйста, помогите мне решить это. Я уже прошел много тем, но не смог найти решение
1 ответ
Не зная, в чем причина, я могу догадаться, что это может быть. Возможно, что файл отчета RDLC (например, MyReport.rdlc
) не был правильно развернут в целевой среде или не находится в ожидаемой папке (относительные пути) при изменении исполняемого каталога.
В Visual Studio убедитесь, что Copy to Output Directory
Свойство установлено в Copy if newer/always
и при выполнении на IIS файлы могут появляться внутри \bin
каталог, хотя локально, они, вероятно, в пределах bin\Debug
,
При передаче в имени файла MyReport.rdlc
в нашем приложении мы настраиваем его и создаем путь следующим образом:
var rdlcFullPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["ReportingPath"], "MyReport.rdlc");
в web.config
файл, добавьте параметр Path:
<add key="ReportingPath" value="bin\Reports" />
Вы можете переопределить настройку для каждой среды, чтобы соответствовать целевой структуре.