解决方案是这样的:使用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###
)。Crystal Reports运行时已安装,但您的应用程序未在默认网站下运行。
crv.js
和style.css
这些文件未被提供;wwwroot\aspnet_client
文件夹中,但由于某些原因,它们无法被访问;我可以看到您使用不同版本的软件和不同的配置,但我认为您有相同的问题。
<add key="ResourceUri" value="/crystalreportviewers13"></add>
现在我正在逐个删除已安装的内容,并检查确切所需的内容。
我试过以下所有方法:
每次进行更改时,我都重新启动了IIS。
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服务器,然后进行测试!
我知道这篇文章有点老了,但我认为像我这样的新手可以从中获得帮助。将此代码添加到您的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>
<script src="../../aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/crv.js" type="text/javascript" >
</script>
同时将 c:\inetpub\wwwroot 文件夹中的 aspnet_client 文件夹复制到新网站根文件夹中。
这种方法解决了以下两个问题,现在已经正常工作:
我也遇到了同样的问题,已经解决。当网站通过 IIS 托管时,Web.config 需要有以下设置:
<add key="ResourceUri" value="~/crystalreportviewers13"/>
当网站通过Visual Studio托管时,
<add key="ResourceUri" value="/crystalreportviewers13"/>
设置
<compilation debug="false">
在 web.config 中对我有用。
<script src='<%=ResolveUrl("~/crystalreportviewers13/js/crviewer/crv.js")%>'type="text/javascript"></script>
在Visual Studio 2012和2013中,Crystal Reports Bobj未定义且bobj.isObject不是函数
首先手动将rpt文件发布到服务器上的文件夹中。如果可以正常运行,那么问题很可能是部署方面的。尝试确保单击文件时的构建操作为“内容”。试试看是否可以进一步解决问题。