【发布时间】:2011-11-08 03:00:58
【问题描述】:
我已经安装了 VS 2010 的水晶报表 2010。我创建了一个水晶报表,它在本地主机中运行良好,但问题是一旦我将我的网站发布到 IIS,报表就永远不会显示。它只是显示一个空白页面。我检查了我发布的文件夹,即使 .rpt 文件不存在。谁能告诉我如何解决这个问题?
【问题讨论】:
我已经安装了 VS 2010 的水晶报表 2010。我创建了一个水晶报表,它在本地主机中运行良好,但问题是一旦我将我的网站发布到 IIS,报表就永远不会显示。它只是显示一个空白页面。我检查了我发布的文件夹,即使 .rpt 文件不存在。谁能告诉我如何解决这个问题?
【问题讨论】:
首先手动将 rpt 文件发布到服务器上的文件夹中。如果它有效,那么它只是一个部署问题。尝试确保单击文件时文件的构建操作是“内容”。试试看能不能走得更远。
【讨论】:
我终于得到了它,如下所述,在旧版本和固定版本中,因为在我的开发服务器上我需要“~”,而在开发服务器上不是这种情况,除了我精确地遵循了链接。 老一:
固定一个:
【讨论】:
这个问题我很难解决。
我的配置是 VS 2010,CR 14.0.2000.0 版本,Window Server 2008 R2,IIS 7。 我得到了解决方案。我尝试了几乎所有网络中给出的解决方案。我已经实施了所有技巧。最后通过在 web.config 中注释以下行来显示报告。
<add key="ResourceUri" value="/crystalreportviewers13"></add>
现在我正在逐一删除我安装的东西,并检查哪些是完全需要的。
我尝试了以下所有方法:
当我做某事时重新启动 IIS。
【讨论】:
这个问题的最佳答案就在这里!
复制 C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13(安装 -CRforVS_redist_install_32bit_13_0.exe 时会得到它)到您的项目,例如 (ProjectName/crystalreportviewers13)
将下面的内容复制到您的 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 模式将您的网络应用程序发布到您的任何文件夹,并将此发布复制到您的网络服务器然后测试它!
【讨论】:
解决方案是以这种方式在 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)
%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 一些文件没有被提供; wwwroot\aspnet_client 文件夹中,但由于某些原因无法访问; 我可以看到你使用不同版本的软件和不同的配置,但我认为你有同样的问题。
【讨论】:
设置
<compilation debug="false">
在 web.config 中为我工作。
【讨论】:
经过数小时的挫折后,这是对我有用的解决方案(在确保按照其他人的建议复制文件夹不起作用之后再做这些......):
场景: CrystalReportsViewer 显示空白浏览器屏幕(没有查看器或任何空白报表页面) 查看源显示整个报告内容,其中包含查看器代码 浏览器可能会也可能不会显示 bobj is undefined 错误
测试:
浏览文件夹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 文件夹的匿名访问(如上所述),请不要忘记禁用对 IIS 中的 aspnet_client 文件夹的匿名访问。
【讨论】:
如果您将aspnet_client 文件夹从C:\inetpub\wwwroot 复制到您新创建的网站的文件夹中,它可以简单地解决问题。例如,如果您的网站名称是 TestWebsite,则将 aspnet_client 文件夹放在 TestWebsite 文件夹中。您无需在 web.config 中进行配置更改
【讨论】:
我知道几年前有人问过这个问题。但是this method 为我工作。这是给总有一天会遇到这种问题的人的。
我在 32 位环境中创建了我的应用程序并更改为 64 位。我在 IIS Web 服务器(当前 64 位)中部署了我的 Web 应用程序,并创建了我自己的应用程序池(集成了“管理管道模式”)。
然后,当此报告问题发生时,我按照链接中的说明进行操作。我将“管理管道模式”更改为 经典,我的应用程序正常工作。
【讨论】:
一种可能的情况是 IIS 服务器网站未默认为 C:\inetpub\wwwroot,因为默认情况下,Crystal 将其应用程序文件安装在 aspnet_client\system_web\4_0_30319\crystalreportviewers13 文件夹中。
所以一个可能的答案是将网站物理路径设置为 c:\inetpub\wwwroot
【讨论】:
在您的母版页或呈现报表的页面中添加对水晶报表 javascript 的引用:
<script src='<%=ResolveUrl("~/crystalreportviewers13/js/crviewer/crv.js")%>'type="text/javascript"></script>
您可以访问以下链接了解详情:
Crystal Reports Bobj is undefined and bobj.isObject is not a function in Visual Studio 2012 and 2013
【讨论】:
在我的案例中,我刚刚更新了 SAP Crystal 报告 Runtime Engine for .NET 通过应用程序和功能,我在我的开发服务器中使用水晶报表版本18,当我将应用程序部署到另一台服务器时,我得到了这个错误,然后我检查了版本我没有得到版本,只有我得到了安装日期,所以我更新到最后一个版本......它工作了
【讨论】:
在存在水晶报表的 aspx 文件中添加以下代码。
<script src="../../aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/crv.js" type="text/javascript" >
</script>
还将 aspnet_client 文件夹从 c:\inetpub\wwwroot 文件夹复制到新的网站根文件夹。
此方法解决了以下两个问题,现在可以正常工作了
【讨论】:
我知道这是一个有点旧的帖子,但我认为像我这样的新手可以从中获得帮助。将此代码添加到您的 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>
【讨论】:
您可以做的其他事情是更改“虚拟访问路径”。在检查了 Chrome 的控制台和网络视图后,我注意到应用程序没有到达 js 和 css 资源,因为它被设置为 web 项目的名称,所以将它设置为 / 就可以了。
【讨论】:
我也遇到了同样的问题,已经解决了。当网站通过 IIS 托管时,Web.config 需要有以下设置:
<add key="ResourceUri" value="~/crystalreportviewers13"/>
当网站通过 Visual Studio 托管时
<add key="ResourceUri" value="/crystalreportviewers13"/>
【讨论】:
解决方法很简单 只需检查这些文件夹是否存在.. c:\inetpun\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13\js\crviewer/
如果不存在,则只需复制现有文件夹并更改最后一个数字
在我的情况下,我将文件夹名称从 Crystalreportviewers14 更改为 Crystalreportviewers13 它开始工作 如果您在共享主机中,请将 aspnet_clients 文件夹复制到您的项目根目录
要找到文件夹的确切名称,只需查看页面源并搜索 aspnet_client
【讨论】: