Crystal Reports для Visual Studio 2010 Ошибка - PullRequest
17 голосов
/ 28 ноября 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 IDE.

2) Среда выполнения SAP Crystal Reports для .NET Framework 4 (64-разрядная версия)

У меня есть страница с именем Reports.aspx, на которой у меня есть элемент управления просмотра отчетов Crystal

 <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, не может быть открыт в стеке C ++.

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

Ответы [ 9 ]

13 голосов
/ 07 декабря 2010

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

10 голосов
/ 28 ноября 2010

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

Sample report = new Sample();

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

6 голосов
/ 15 мая 2012

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

  1. Действие построения по умолчанию установлено на «Встроенный ресурс». Измените его на « Содержимое ».
  2. Копировать на выход * По умолчанию для 1011 * установлено значение "Не копировать". Измените его на « Копировать всегда ».

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

5 голосов
/ 12 сентября 2011

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

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

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

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

  1. Перейти к диспетчеру IIS на вашем сервере
  2. Разверните узел древовидного представления для веб-сайта, на котором выполняется ваше приложение
  3. Посмотрите на уровень непосредственно под узлом веб-сайта и убедитесь, что вы видите папку "aspnet_client".
  4. Если вы видите папку, то, возможно, эта основная причина не является причиной вашей проблемы.
  5. Если вы НЕ видите эту папку, найдите ее на жестком диске сервера и скопируйте ее на физический путь веб-сайта.
  6. Щелкните правой кнопкой мыши узел веб-сайта и выберите Обновить из всплывающего меню
  7. Теперь вы должны увидеть папку aspnet_client на уровне непосредственно под узлом вашего веб-сайта, и отчеты в приложении должны работать.
3 голосов
/ 02 марта 2011

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

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

2 голосов
/ 24 марта 2012

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

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

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


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

2 голосов
/ 02 июля 2011

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

0 голосов
/ 15 февраля 2013
  1. Переустановите «Crystal Report Engine» на сервер

  2. Действие построения установлено в «Содержимое».

У меня это отлично сработало ..!

0 голосов
/ 19 мая 2011

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

...