【问题标题】:Crystal Report Issue with IIS - ( bobj is undefined , Crystal report not displaying )IIS 的 Crystal Report 问题 -(bobj 未定义,Crystal 报表未显示)
【发布时间】:2011-11-08 03:00:58
【问题描述】:

我已经安装了 VS 2010 的水晶报表 2010。我创建了一个水晶报表,它在本地主机中运行良好,但问题是一旦我将我的网站发布到 IIS,报表就永远不会显示。它只是显示一个空白页面。我检查了我发布的文件夹,即使 .rpt 文件不存在。谁能告诉我如何解决这个问题?

【问题讨论】:

    标签: asp.net crystal-reports


    【解决方案1】:

    首先手动将 rpt 文件发布到服务器上的文件夹中。如果它有效,那么它只是一个部署问题。尝试确保单击文件时文件的构建操作是“内容”。试试看能不能走得更远。

    【讨论】:

      【解决方案2】:

      我终于得到了它,如下所述,在旧版本和固定版本中,因为在我的开发服务器上我需要“~”,而在开发服务器上不是这种情况,除了我精确地遵循了链接。 老一:

      固定一个:

      【讨论】:

        【解决方案3】:

        这个问题我很难解决。

        我的配置是 VS 2010,CR 14.0.2000.0 版本,Window Server 2008 R2,IIS 7。 我得到了解决方案。我尝试了几乎所有网络中给出的解决方案。我已经实施了所有技巧。最后通过在 web.config 中注释以下行来显示报告。

        <add key="ResourceUri" value="/crystalreportviewers13"></add>
        

        现在我正在逐一删除我安装的东西,并检查哪些是完全需要的。

        我尝试了以下所有方法:

        • 为 CRRuntime_32bit_13_0_4 和 CRRuntime_64bit_13_0_4 安装了 CR Runtime。
        • 后来我删除了 CRRuntime_32bit_13_0_4 仍然有效。
        • 将 aspnet_client 文件夹放在 WWWRoot 文件夹中。
        • 将 aspnet_client 文件夹放在我的应用程序文件夹中。

        当我做某事时重新启动 IIS。

        【讨论】:

        • “将 aspnet_client 文件夹放在我的应用程序文件夹中”足以解决 'bobj' 问题!
        • 我已经安装了Crystal Report,我正在一些桌面应用程序上使用它。现在我正在尝试在 asp mvc 中实现它。问题是我没有 c:\inetpub\wwwroot 文件夹。我还在我的计算机上搜索了 aspnet_client 文件夹,但它没有退出。我该怎么办?
        • 我在一些示例项目中找到了 aspnet 客户端文件夹,只需复制粘贴它就可以了!
        • @Antony 这在服务器上对我有用,非常感谢
        【解决方案4】:

        这个问题的最佳答案就在这里!

        http://social.msdn.microsoft.com/Forums/en-US/vscrystalreports/thread/ef56f72b-7ede-47d8-ba9e-9e63b9ac0203

        1. 您需要使用 Web 应用程序项目,没有网站项目,因为 Web 应用程序也会将 DLL 组合到项目中。
        2. 复制 C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13(安装 -CRforVS_redist_install_32bit_13_0.exe 时会得到它)到您的项目,例如 (ProjectName/crystalreportviewers13)

        3. 将下面的内容复制到您的 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 模式将您的网络应用程序发布到您的任何文件夹,并将此发布复制到您的网络服务器然后测试它!

        【讨论】:

        • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
        • 投反对票真的有必要吗?在我提供的链接中有答案,好的,我应该在此处插入部分答案,但我的答案仍在回答问题。
        【解决方案5】:

        解决方案

        解决方案是以这种方式在 IIS 上工作:

        • 复制c:\inetpub\wwwroot文件夹中的aspnet_client文件夹到新建网站根文件夹。

        或(第一个更容易,第二个更便于维护)

        • 创建一个名为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###\,WIN2008上C:\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 错误! 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 错误!

        导致问题

        Crystal Reports 运行时已安装,但您的应用程序未在默认网站下运行。

        • 在这两种情况下,我发现crv.js 和style.css 一些文件没有被提供;
        • 这些文件由 CR 安装程序放置在 wwwroot\aspnet_client 文件夹中,但由于某些原因无法访问;
        • 在我的情况下,原因是我创建了一个不同的网站(端口 20080)并且 aspnet_client 文件夹没有放在该网站内

        我可以看到你使用不同版本的软件和不同的配置,但我认为你有同样的问题。

        【讨论】:

        • 非常感谢。在我找到你的答案之前,我花了很长时间才得到修复。这确实是我使用了一个额外的 Web 应用程序而不是默认的 Web 应用程序的问题。
        • 我已经安装了Crystal Report,我正在一些桌面应用程序上使用它。现在我正在尝试在 asp mvc 中实现它。问题是我没有 c:\inetpub\wwwroot 文件夹。我还在我的计算机上搜索了 aspnet_client 文件夹,但它没有退出。我该怎么办?
        • 我在一些示例项目中找到了 aspnet 客户端文件夹,只需复制粘贴它就可以了!
        • 正确... IIS wwwroot 必须复制到新的 IIS 文件夹
        【解决方案6】:

        设置

        <compilation debug="false">
        

        在 web.config 中为我工作。

        【讨论】:

          【解决方案7】:

          经过数小时的挫折后,这是对我有用的解决方案(在确保按照其他人的建议复制文件夹不起作用之后再做这些......):

          场景: CrystalReportsViewer 显示空白浏览器屏幕(没有查看器或任何空白报表页面) 查看源显示整个报告内容,其中包含查看器代码 浏览器可能会也可能不会显示 bobj is undefined 错误

          测试: 浏览文件夹http://&lt;server name&gt;/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 - 如果您应该修复您的报告的图像

          至少我在任何地方都找不到这个解决方案..

          注意: 如果您已经完成了对 IIS 中 aspnet_client 文件夹的匿名访问(如上所述),请不要忘记禁用对 IIS 中的 aspnet_client 文件夹的匿名访问。

          【讨论】:

            【解决方案8】:

            如果您将aspnet_client 文件夹从C:\inetpub\wwwroot 复制到您新创建的网站的文件夹中,它可以简单地解决问题。例如,如果您的网站名称是 TestWebsite,则将 aspnet_client 文件夹放在 TestWebsite 文件夹中。您无需在 web.config 中进行配置更改

            【讨论】:

              【解决方案9】:

              我知道几年前有人问过这个问题。但是this method 为我工作。这是给总有一天会遇到这种问题的人的。

              我在 32 位环境中创建了我的应用程序并更改为 64 位。我在 IIS Web 服务器(当前 64 位)中部署了我的 Web 应用程序,并创建了我自己的应用程序池(集成了“管理管道模式”)。

              然后,当此报告问题发生时,我按照链接中的说明进行操作。我将“管理管道模式”更改为 经典,我的应用程序正常工作。

              【讨论】:

                【解决方案10】:

                发生这种情况的一个非常简单的原因是服务器配置不正确,这意味着在服务器角色/Windows 功能下的通用 HTTP 功能中未启用静态内容。

                【讨论】:

                  【解决方案11】:

                  一种可能的情况是 IIS 服务器网站未默认为 C:\inetpub\wwwroot,因为默认情况下,Crystal 将其应用程序文件安装在 aspnet_client\system_web\4_0_30319\crystalreportviewers13 文件夹中。

                  所以一个可能的答案是将网站物理路径设置为 c:\inetpub\wwwroot

                  【讨论】:

                  • 欢迎来到 SO!这看起来像是对问题的评论而不是答案。如果您打算发表评论,您需要在任何帖子上拥有足够的reputation 至comment。还要检查这个what can I do instead。
                  【解决方案12】:

                  在您的母版页或呈现报表的页面中添加对水晶报表 javascript 的引用:

                  &lt;script src='&lt;%=ResolveUrl("~/crystalreportviewers13/js/crviewer/crv.js")%&gt;'type="text/javascript"&gt;&lt;/script&gt;

                  您可以访问以下链接了解详情:

                  Crystal Reports Bobj is undefined and bobj.isObject is not a function in Visual Studio 2012 and 2013

                  【讨论】:

                    【解决方案13】:

                    在我的案例中,我刚刚更新了 SAP Crystal 报告 Runtime Engine for .NET 通过应用程序和功能,我在我的开发服务器中使用水晶报表版本18,当我将应用程序部署到另一台服务器时,我得到了这个错误,然后我检查了版本我没有得到版本,只有我得到了安装日期,所以我更新到最后一个版本......它工作了

                    【讨论】:

                    • 将引擎更新为什么?更新的版本?你如何检查运行时引擎?我们检查什么?
                    • 转到应用程序和功能,你可以从那里检查版本,我在我的开发服务器中使用水晶报表版本 18,当我将应用程序部署到另一台服务器时,我得到了这个错误,然后我检查了我没有得到版本,只有我得到了安装日期,大约是在第 18 版发布前 3 个月,所以我更新到最后一个版本......并且它工作了。
                    【解决方案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 文件夹复制到新的网站根文件夹。

                    此方法解决了以下两个问题,现在可以正常工作了

                    1. bobj 未定义。
                    2. 水晶报表未显示。

                    【讨论】:

                      【解决方案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 资源,因为它被设置为 web 项目的名称,所以将它设置为 / 就可以了。

                        【讨论】:

                          【解决方案17】:

                          我也遇到了同样的问题,已经解决了。当网站通过 IIS 托管时,Web.config 需要有以下设置:

                              <add key="ResourceUri" value="~/crystalreportviewers13"/>
                          

                          当网站通过 Visual Studio 托管时

                              <add key="ResourceUri" value="/crystalreportviewers13"/>
                          

                          【讨论】:

                            【解决方案18】:

                            ​解决方法很简单 只需检查这些文件夹是否存在.. c:\inetpun\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13\js\crviewer/

                            如果不存在,则只需复制现有文件夹并更改最后一个数字

                            在我的情况下,我将文件夹名称从 Crystalreportviewers14 更改为 Crystalreportviewers13 它开始工作 如果您在共享主机中,请将 aspnet_clients 文件夹复制到您的项目根目录

                            要找到文件夹的确切名称,只需查看页面源并搜索 aspnet_client

                            【讨论】:

                              猜你喜欢
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 2023-03-21
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 2014-05-28
                              相关资源
                              最近更新 更多