Приложение 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" />

Вы можете переопределить настройку для каждой среды, чтобы соответствовать целевой структуре.

Другие вопросы по тегам