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

Неподдерживаемая операция. Документ, обработанный механизмом JRC, не может быть открыт в стеке С++

когда я развертываю свой сайт asp.net на сервере Windows 2003 с базой данных oracle 10g в backend.Я использую sap crystal report version 13.0.2000.0 Он дает ошибку как

Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ 
stack.Description: An unhandled exception occurred during the execution of the current web request.
Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Runtime.InteropServices.COMException: Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.

Ошибка источника:

Необработанное исключение было создано во время выполнения текущего веб-запроса. Информация о происхождении и местоположении исключения может быть идентифицирована с использованием трассы стека исключений ниже.

Трассировка стека:

[COMException (0x80041811): Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.]
CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) +0
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) +95
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +270

[CrystalReportsException: Load report failed.]
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +333
CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob) +877
CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename) +84
WEBPAGES_srccustomerbill2.setdatasource() +2270
WEBPAGES_srccustomerbill2.Page_Load(Object sender, EventArgs e) +233
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207

Информация о версии: Microsoft.NET Framework Версия: 4.0.30319; Версия ASP.NET: 4.0.30319.1

4b9b3361

Ответ 1

Если у вас есть веб-приложение

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

  • По умолчанию установите действие "Содержимое" ( "Встроенный ресурс" ).
  • Сменить копию на вывод на "Копировать всегда" ( "Не копировать" по умолчанию).

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


Если у вас есть веб-сайт

у вас должен быть флаг "Разрешить этот предварительно скомпилированный сайт обновляться" внутри меню "Опубликовать веб-сайт"


В веб-приложении и веб-сайте

вы можете вместо выполнения предыдущих шагов

  • Не публиковать отчет, используя параметр публикации, просто скопировать их вручную в папку публикации.

и вы должны

  • Проверить наличие и доступность отчетов приложением (разрешения, путь к файлу)

Удачи!

Ответ 2

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

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

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

Ответ 3

У меня есть такое же сообщение об ошибке, и я попробовал Google и Googling, но нашел решение.

Во-первых, вы должны проверить свой ReportPath, если это правильно.

Если вы используете С#, этот код может помочь:

//declare new report
ReportDocument rpt = new ReportDocument();                  
//load your report
rpt.Load(Server.MapPath("crMembers.rpt"));                  
//set your datasource
rpt.Database.Tables[0].SetDataSource(m.GetReportSource());  
//set your report for the viewer
crviewer.ReportSource = rpt;                                
//refresh the viewer
crviewer.RefreshReport();                                   

Ответ 4

Переустановите "Crystal report engine" на сервер и установите Action для "Content".

Ответ 5

После выполнения всего вышеописанного решения я получил окончательное решение, просто скопируйте папку Crystal Report (где вы сохраните весь хрустальный отчет в один каталог) прямо в место, где вы размещаете веб-сайт. В моем случае это c:/inetpub/www/xyz, здесь xyz является папкой публикации.