Подтвердить что ты не робот

Ошибка Crystal Reports для Visual Studio 2010

Я пытаюсь запустить отчет 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, не может быть открыт в стеке С++.

Как я могу это исправить?

4b9b3361

Ответ 1

убедитесь, что отчет находится в папке app_code инициализируйте новый экземпляр вместо инициализации документа reportdocument и загрузите в него отчет.

Sample report = new Sample();

это сработало для меня

Ответ 2

Я также попал в ту же проблему, что и проблема с сообщением, была неправильной, может быть, у вас такая же проблема, проверьте Server.MapPath( "Reports/Sample.rpt" ), возвращающий правильный путь?

Ответ 3

ПРИМЕЧАНИЕ. Ниже термин "WebSite" относится к фактическим узлам веб-сайта в IIS, а не к виртуальному каталогу на веб-сайте.

Проблема Корневая причина. Нет папки "aspnet_client", доступной для приложения.
Это может произойти по нескольким причинам:

  • Так как установщик SAP CR установил папку aspnet_client в папке... \inetpub\wwwroot \, если физический путь вашего веб-сайта НЕ... \inetpub\wwwroot, ваше приложение не будет иметь доступа к папка aspnet_client.
  • Если папка aspnet_client была перемещена или удалена с верхнего уровня вашего физического пути вашего веб-сайта, ваше приложение IIS не будет иметь доступ к этой папке.

Решение проблемы (для Windows Server 2008 R2)

  • Перейдите в диспетчер IIS на своем сервере.
  • Разверните древовидное представление node для веб-приложения, запускающего ваше приложение.
  • Посмотрите на уровень сразу под веб-сайтом node и убедитесь, что вы видите папку "aspnet_client".
  • Если вы видите папку, то, возможно, эта причина не является причиной вашей проблемы.
  • Если вы НЕ видите папку, найдите на ней жесткий диск сервера и скопируйте ее на физический путь веб-сайта.
  • Щелкните правой кнопкой мыши на веб-сайте node и нажмите "Обновить" во всплывающем меню
  • Теперь вы должны увидеть папку aspnet_client на уровне, прямо под вашим веб-сайтом node, и отчеты в приложении должны работать.

Ответ 4

Вам нужно будет изменить два свойства в файлах .rpt:

  • Действие сборки по умолчанию установлено в "Встроенный ресурс". Измените его на " Контент".
  • Копировать на вывод по умолчанию установлено значение "Не копировать". Измените его на " Скопировать всегда".

Перестроить, создать пакет развертывания и опубликовать. Готово!

Ответ 5

Я столкнулся с этим, когда я преобразовал веб-сайт в веб-приложение. Отчет будет отлично работать на моей машине dev, но не на сервере. Затем я понял, что на сервере отсутствует файл rpt!

По умолчанию файлы отчетов считаются встроенными ресурсами и не копируются при публикации веб-приложения. Я просто изменил их индивидуально, переиздал сайт, и все было хорошо снова.

Ответ 6

У меня также был отказ при загрузке отчета, если я ошибочно оставил файл отчета открытым в конструкторе отчетов Crystal.

Ответ 7

Эта ошибка является настоящим удовольствием и, похоже, имеет много возможных антецедентов. К счастью, я только потратил впустую день на свое особое изменение:

ReportDocument.Load() также создает локальную временную копию. (Это может быть только в случае загрузки с места сетевого диска, я не тестировал это в случае локальной нагрузки.)

Если пользовательский контекст, под которым происходит загрузка, не имеет полномочий для локального создания временного файла, Load завершится с той же самой бесполезной ошибкой.


Кроме того, я закончил диагностировать это с помощью Process Monitor. Это может быть полезно и вам.

Ответ 8

Пожалуйста, убедитесь, что ваши файлы отчета rpt находятся в исходной папке. Сначала я получил ту же ошибку, после того как я опубликовал свой веб-сайт MVC в IIS. Я не понимал, что "Публикация" не помещала rpt файлы в пакет.

Ответ 9

  • Переустановите "сервер отчетов Crystal" на сервер

  • Действие сборки установлено в "Содержимое".

Это отлично сработало для меня..!