Ответ 1
убедитесь, что отчет находится в папке app_code
инициализируйте новый экземпляр вместо инициализации документа reportdocument и загрузите в него отчет.
Sample report = new Sample();
это сработало для меня
Я пытаюсь запустить отчет Crystal из моего веб-приложения, которое было создано с использованием ASP.NET 4.0 и Visual Studio 2010. Я установил следующее из сайта SAP (http://www.businessobjects.com/jump/xi/crvs2010/us2_default.asp)
1) SAP Crystal Reports, версия для Visual Studio 2010 - Стандартный установочный пакет EXE, который устанавливает программное обеспечение в среду разработки Visual Studio.
2) Механизм выполнения SAP Crystal Reports для .NET Framework 4 (64-разрядный)
У меня есть страница под названием Reports.aspx, в которой у меня есть контроль над просмотром Crystal Report
<CR:CrystalReportViewer ID="rptViewer" runat="server" AutoDataBind="true" />
В файле Reports.aspx.cs у меня есть следующий код:
protected override void OnPreRender(EventArgs e)
{
ReportDocument report = new ReportDocument();
var path = Server.MapPath("Reports/Sample.rpt");
report.Load(path);
report.SetDatabaseLogon("username", "password", "servername", "databasename");
rptViewer.ReportSource = report;
}
На строке report.Load(path) появляется следующая ошибка:
Неподдерживаемая операция. Документ, обработанный механизмом JRC, не может быть открыт в стеке С++.
Как я могу это исправить?
убедитесь, что отчет находится в папке app_code
инициализируйте новый экземпляр вместо инициализации документа reportdocument и загрузите в него отчет.
Sample report = new Sample();
это сработало для меня
Я также попал в ту же проблему, что и проблема с сообщением, была неправильной, может быть, у вас такая же проблема, проверьте Server.MapPath( "Reports/Sample.rpt" ), возвращающий правильный путь?
ПРИМЕЧАНИЕ. Ниже термин "WebSite" относится к фактическим узлам веб-сайта в IIS, а не к виртуальному каталогу на веб-сайте.
Проблема Корневая причина. Нет папки "aspnet_client", доступной для приложения.
Это может произойти по нескольким причинам:
Решение проблемы (для Windows Server 2008 R2)
Вам нужно будет изменить два свойства в файлах .rpt:
Перестроить, создать пакет развертывания и опубликовать. Готово!
Я столкнулся с этим, когда я преобразовал веб-сайт в веб-приложение. Отчет будет отлично работать на моей машине dev, но не на сервере. Затем я понял, что на сервере отсутствует файл rpt!
По умолчанию файлы отчетов считаются встроенными ресурсами и не копируются при публикации веб-приложения. Я просто изменил их индивидуально, переиздал сайт, и все было хорошо снова.
У меня также был отказ при загрузке отчета, если я ошибочно оставил файл отчета открытым в конструкторе отчетов Crystal.
Эта ошибка является настоящим удовольствием и, похоже, имеет много возможных антецедентов. К счастью, я только потратил впустую день на свое особое изменение:
ReportDocument.Load()
также создает локальную временную копию. (Это может быть только в случае загрузки с места сетевого диска, я не тестировал это в случае локальной нагрузки.)
Если пользовательский контекст, под которым происходит загрузка, не имеет полномочий для локального создания временного файла, Load
завершится с той же самой бесполезной ошибкой.
Кроме того, я закончил диагностировать это с помощью Process Monitor. Это может быть полезно и вам.
Пожалуйста, убедитесь, что ваши файлы отчета rpt находятся в исходной папке. Сначала я получил ту же ошибку, после того как я опубликовал свой веб-сайт MVC в IIS. Я не понимал, что "Публикация" не помещала rpt файлы в пакет.
Переустановите "сервер отчетов Crystal" на сервер
Действие сборки установлено в "Содержимое".
Это отлично сработало для меня..!