IIS的Crystal Report问题 - (bobj未定义,Crystal报表未显示)

时间:2011-09-01 04:13:32

标签: asp.net crystal-reports

我已经安装了VS 2010的水晶报告2010.i创建了一个水晶报告,在localhost中工作正常,但问题是我将我的网站发布到IIS后,报告永远不会显示。只显示一个空白页面。我检查了我发布的文件夹,即使.rpt文件也没有。任何人都告诉我如何解决这个问题?

17 个答案:

答案 0 :(得分:32)

解决方案

解决方案是以这种方式在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)

  • 服务器工具(WIN2003上的IIS日志位于WIN2008 %SYSTEMROOT%\System32\LogFiles\W3SVC###\上的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 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.jsstyle.css部分文件未送达;
  • 这些文件由CR安装程序放在wwwroot\aspnet_client文件夹中,但由于某些原因无法访问;
  • 在我的情况下,原因是我创建了一个不同的网站(端口20080),aspnet_client文件夹没有放在该网站内

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

答案 1 :(得分:3)

这个问题我很难解决。

我的配置是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。

答案 2 :(得分:3)

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

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

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

    < / LI>
  3. 将以下内容复制到您的web.config

  4. 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模式将您的Web应用程序发布到您的任何文件夹,然后将此发布复制到您的Web服务器,然后测试它!

答案 3 :(得分:1)

其中一个令人难以置信的简单原因是服务器配置不正确,这意味着在服务器角色/ Windows功能下的通用HTTP功能中未启用静态内容。

Enabling Static content

答案 4 :(得分:0)

我知道几年前有人问过这个问题。但this method对我有用。这对于那些有一天会遇到这种问题的人来说。

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

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

答案 5 :(得分:0)

我也面临着同样的问题,得到解决。通过IIS托管网站时,Web.config需要具有以下设置:

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

通过Visual Studio托管网站通过时

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

答案 6 :(得分:0)

您可以做的其他事情是更改“虚拟访问路径”。在检查Chrome的控制台和网络视图后,我注意到应用程序未到达jscss资源,因为这已设置为Web项目的名称,因此将其设置为/这就行了。

答案 7 :(得分:0)

我知道这是一个有点旧的帖子,但我认为像我这样的新手可以从中得到帮助。将此代码添加到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>

答案 8 :(得分:0)

在存在水晶报告的aspx文件中添加以下代码。

<script src="../../aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/crv.js" type="text/javascript" > 
</script>

同时将asp.net_client文件夹从c:\ inetpub \ wwwroot文件夹复制到新网站根文件夹。

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

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

答案 9 :(得分:0)

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

答案 10 :(得分:0)

将此引用添加到您的母版页或渲染报告的页面中的水晶报告javascript:

&#13;
&#13;
<script src='<%=ResolveUrl("~/crystalreportviewers13/js/crviewer/crv.js")%>'type="text/javascript"></script>
&#13;
&#13;
&#13;

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

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

答案 11 :(得分:0)

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

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

答案 12 :(得分:0)

首先手动将rpt文件发布到服务器上的文件夹中。如果它工作,那么它只是一个部署问题。单击它时,请尝试确保文件的构建操作是“内容”。试着看看你是否进一步了解。

答案 13 :(得分:0)

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

中进行配置更改

答案 14 :(得分:0)

以下是经过数小时挫折后对我有用的解决方案(在确定按照其他人推荐的方式复制文件夹后,请执行这些操作...):

<强>情境: CrystalReportsViewer显示空白浏览器屏幕(无查看器或任何空白报告页面) 查看源显示整个报表内容和查看器代​​码 浏览器可能显示或未显示bobj未定义错误

<强>测试: 浏览文件夹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 - 如果您想要的图像也可以修复报告

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

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

答案 15 :(得分:0)

设置

<compilation debug="false">
web.config中的

为我工作。

答案 16 :(得分:0)

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

修正了一个: