У меня есть отчет Crystal 2010, установленный с VS 2010.i создал хрустальный отчет, который отлично работает в локальном хосте, но проблема заключается в том, чтобы однажды опубликовать мой сайт в IIS, отчет никогда не отображается. Он просто отображает пустую страницу. я проверил мою опубликованную папку, даже файл .rpt не существует. Скажите, как решить эту проблему?
Ошибка Crystal Report в IIS - (bobj - undefined, отчет Crystal не отображается)
Ответ 1
Решение
Решение состоит в том, чтобы работать с IIS следующим образом:
- Скопировать папку
aspnet_client
изc:\inetpub\wwwroot
в корневую папку нового веб-сайта.
или (сначала проще, второй лучше для обслуживания)
- Создайте виртуальный каталог с именем
aspnet_client
, который указывает наc:\inetpub\wwwroot\aspnet_client
внутри нового веб-сайта
Анализ проблем
Можно проанализировать проблему
- с помощью клиентских инструментов (отладочное окно браузера)
GET http://someserver:20080/aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/crv.js 403 (Forbidden)
GET
http://someserver:20080/aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/images/style.css 403 (Forbidden)
- или серверный инструмент (журнал IIS, на WIN2003 помещается в
%SYSTEMROOT%\System32\LogFiles\W3SVC###\
на WIN2008C:\inetpub\logs\LogFiles\W3SVC###
).
2011-03-28 13:00:49 W3SVC701536 95.228.38.41 GET/aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/images/style.css - 20080 - 192.168.1.2 Mozilla/5.0 + (совместимо; + MSIE + 9.0; + Windows + NT + 6.1; + Trident/5.0) 403 6 64 Errore! 2011-03-28 13:00:49 W3SVC701536 95.228.38.41 GET/aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/crv.js - 20080 - 192.168.1.2 Mozilla/5.0 + (совместимо; + MSIE + 9.0; + Windows + NT + 6.1; + Trident/5.0) 403 6 64 Errore!
Причина проблемы
Установлена среда исполнения Crystal Reports, но ваше приложение не работает на веб-сайте по умолчанию.
- В обоих случаях я обнаружил, что
crv.js
иstyle.css
некоторые файлы не были отправлены; - эти файлы размещаются установщиком CR в папке
wwwroot\aspnet_client
, но по некоторым причинам их невозможно достичь; - В моем случае причина в том, что я создаю другой сайт (порт 20080), а папка aspnet_client не помещается внутри этого веб-сайта
Я вижу, что вы используете разные версии программного обеспечения и разные конфигурации, но Я думаю, что у вас такая же проблема..
Ответ 2
Эта проблема была трудной для меня решить.
Моя конфигурация - версия VS 2010, CR 14.0.2000.0, Window Server 2008 R2, IIS 7. Я получил решение. Я попробовал почти все решения, данные в сети. И я реализовал все трюки. Наконец, отчет отображается путем комментирования строки ниже в web.config.
<add key="ResourceUri" value="/crystalreportviewers13"></add>
Теперь я удаляю один за другим, который я установил и проверяю, какие именно вещи требуются.
Я пробовал все ниже:
- Установлено время выполнения CR для CRRuntime_32bit_13_0_4 и CRRuntime_64bit_13_0_4.
- Позже я удалил CRRuntime_32bit_13_0_4, пока он работает.
- Разместил папку aspnet_client внутри папки WWWRoot.
- Разместил папку aspnet_client внутри моей папки приложения.
Перезапуск IIS, когда-либо я что-то сделал.
Ответ 3
Лучший ответ на этот вопрос здесь!
- Вам нужно использовать проект веб-приложений, проект без веб-сайта, потому что веб-приложение также будет объединять DLL.
-
Скопировать C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13 (вы получите его при установке -CRforVS_redist_install_32bit_13_0.exe) К вашему проекту, например (ProjectName/crystalreportviewers13)
/li > -
скопируйте это ниже в свой web.config
3.1
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="rptBuildProvider" type="CrystalDecisions.Shared.RptBuildProviderHandler, CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, Custom=null" />
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
3,2
<businessObjects>
<crystalReports>
<rptBuildProvider>
<add embedRptInResource="true" />
</rptBuildProvider>
<crystalReportViewer>
<add key="ResourceUri" value="/crystalreportviewers13" />
</crystalReportViewer>
</crystalReports>
</businessObjects>
3.4 Опубликуйте свое веб-приложение в режиме FTP в любой папке и скопируйте публикацию на свой веб-сервер, затем ПРОВЕРИТЕ его!
Ответ 4
Одна, невероятно простая причина, по которой это также происходит, заключается в том, что сервер не настроен правильно, то есть статический контент не включен в Common HTTP-функциях в рамках ролей сервера/функций Windows.
Ответ 5
Сначала вручную опубликуйте rpt файлы в своей папке на сервере. Если это работает, то это просто проблема развертывания. Попробуйте убедиться, что действие сборки для файла при нажатии на него - "Содержимое". Попробуйте, если вы немного поправитесь.
Ответ 6
Наконец, я получил его, как описано ниже, в старой и фиксированной версии, потому что на моем сервере разработки мне нужно "~", что не так на сервере разработки, кроме того, что я точно следил за ссылкой. старый:
исправлено:
Ответ 7
Настройка
<compilation debug="false">
в web.config работал у меня.
Ответ 8
Вот решение, которое работало для меня после нескольких часов разочарования (сделайте это после того, как вы убедились, что копирование папок, как рекомендовано другими, не сработало..):
Сценарий: CrystalReportsViewer отображает пустой экран браузера (без просмотра или любой пустой страницы отчетов) Просмотр источника показывает весь контент отчета с кодом зрителя Браузер может или не может отображать bobj undefined error
Тест:
Просмотрите папку http://<server name>/aspnet_client/system_web/4_0_30319/crystalreportviewers13/images/buttonl.gif
- Если вы не видите изображения, то это та же проблема, с которой сталкивается crystalreportsviewer при отображении отчетов
Настройки IIS для изменения: Разверните папки вашего веб-сайта в IIS (7.0 или выше) Выберите папку "aspnet_client" Выберите "Аутентификация" на главной странице (вид функций) Выберите "Анонимный доступ" и "Включить", используя меню "Действия" на правой панели (это ТОЛЬКО для цели тестирования, вы можете отключить это позже) Выберите "Отображения обработчиков" на главной панели (вид функций) В меню "Действия" в правой панели Нажмите "Возврат к унаследованному" Принять, чтобы вернуться после запроса подтверждения
Повторите тест: Просмотрите папку http:///aspnet_client/system_web/4_0_30319/crystalreportviewers13/images/buttonl.gif - если у вас есть образ, который вы могли бы также исправить ваш отчет
По крайней мере, я не мог найти это решение в любом месте.
Примечание: Не забудьте отключить анонимный доступ к папке aspnet_client в IIS, если вы сделали это для тестирования (как указано выше)
Ответ 9
Он может просто решить проблему, если вы скопируете папку aspnet_client из C:\inetpub\wwwroot в папку вашего вновь созданного веб-сайта. Например, если ваше имя веб-сайта является TestWebsite, поместите папку aspnet_client в папку TestWebsite. Вам не нужно вносить изменения в конфигурацию web.config
Ответ 10
Я знаю, что это было спрошено несколько лет назад. Но этот метод работал на меня. Это для людей, которые когда-нибудь столкнутся с такой проблемой.
Я создал свое приложение в 32-битной среде и изменил его на 64 бит. Я развернул мое веб-приложение на веб-сервере IIS (текущий 64-разрядный) и создал свой собственный пул приложений (с включенным режимом управления конвейером).
Затем, когда эта проблема возникла, я выполнил эти инструкции из этой ссылки. Я изменил режим управления конвейером на классический, и мое приложение работало.
Ответ 11
Возможный сценарий заключается в том, что веб-сайт IIS Server не имеет значения по умолчанию C:\inetpub\wwwroot, поскольку по умолчанию Crystal устанавливает его файлы приложения в папку aspnet_client\system_web\4_0_30319\crystalreportviewers13.
Таким образом, возможным ответом является установка физического пути веб-сайта в c:\inetpub\wwwroot
Ответ 12
Добавьте эту ссылку на javascript на хрустальном отчете на главной странице или странице, в которой отображается отчет:
<script src='<%=ResolveUrl("~/crystalreportviewers13/js/crviewer/crv.js")%>'type="text/javascript"></script>
Ответ 13
В моем случае я только что обновил SAP Crystal Reports Runtime Engine для .NET через приложения и функции, я использовал хрустальный отчет версии 18 на моем сервере разработки, когда я развернул приложение на другой сервер, я получил эту ошибку, затем я проверил версию, в которой я не получил версию, только я установил дату, поэтому Я обновил последнюю версию... и она работала
Ответ 14
Добавьте ниже код в файл aspx, где существует отчет о кристалле.
<script src="../../aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/crv.js" type="text/javascript" >
</script>
Также скопируйте папку aspnet_client из папки c:\inetpub\wwwroot в корневую папку нового веб-сайта.
Этот метод решает ниже два вопроса, теперь работает отлично
- bobj - undefined.
- Отчет Crystal не отображается.
Ответ 15
Я знаю, что это немного маленькая старая статья, но я думаю, что новички, подобные мне, могут получить помощь от этого. добавьте этот код в свой файл web.config и скопируйте папку "crystalreportviewers13" из "c:\inetpub\wwwroot\aspnet_client" в корневую директорию
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="rptBuildProvider" type="CrystalDecisions.Shared.RptBuildProviderHandler, CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, Custom=null" />
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<rptBuildProvider>
<add embedRptInResource="true" />
</rptBuildProvider>
<crystalReportViewer>
<add key="ResourceUri" value="/crystalreportviewers13" />
</crystalReportViewer>
</crystalReports>
</businessObjects>
Ответ 16
Что-то еще, что вы можете сделать, это изменить "путь виртуального доступа". После проверки консоли Chrome и просмотра сети я заметил, что приложения не доходили до ресурсов js
и css
, так как это было настроено на имя веб-проекта, поэтому установите это на /
, и это сделало трюк.