我拥有一个带有框架4.5的ASP.NET Web项目。已安装并实施VS2012 Crystal Reports Developer的SAP报告。
制作本地报告,它可以在浏览器(Chrome,Firefox,IE)中正常工作,并且正确退出数据。现在,在发布时(在另一台服务器上),我们做的第一件事是安装相同版本的SAP,以便有必要的库等。
我遇到的问题是Report Viewer的块,我的意思是,什么是repot容器,未在浏览器中显示,打开窗口,这是嵌入但未在Report Viewer中显示的任何内容,报告将会是什么看起来更少。
认为它可能是数据错误或其他什么,我试图更改报告并放置一个空白,其中显示的所有内容都是文本,没有任何连接或类似的东西,并删除了不需要的代码代码背后,我刚刚停止加载报告。
在新的本地作品中,但在发布的网页上,报告查看器仍然是
有人可以帮我一点吗?我正在寻找有关它的一些信息,但我在论坛中找到的是,报告没有看到,但报告查看器没有。
提前非常感谢你。
PS:我已经检查了服务器日志中是否有任何问题或Asp.Net Crystal Reports错误而且没有留下任何内容。
答案 0 :(得分:17)
我有微笑问题并找到了解决方案。
我认为从默认Resource-Uri
中找到资源来格式化水晶报告存在一些问题。
正确格式化
将此C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13
此文件夹复制到您的项目中。
将这些行放到web.config文件中
<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>
这会对你有帮助。
答案 1 :(得分:1)
将文件夹 “C:\ inetpub \ wwwroot \ aspnet_client \ system_web \ 4_0_30319 \ crystalreportviewers13” 复制到应用程序根文件夹后,请务必复制并粘贴给代码:
<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>
在&lt;之后web.config文件中的配置&gt; 标记。对我来说,任何其他地方都无法正常工作并生成错误信息。
答案 2 :(得分:1)
对我来说,网页开发者工具(F12然后是控制台选项卡)显示,当我将文件复制到4_0_30319文件夹时,服务器正在查找root / aspnet_client / system_web / 4_6_1069文件夹。我重命名了文件夹和BAM!
答案 3 :(得分:1)
解决了...... 100%将会工作。请按照以下两个步骤操作:
1.更新应用程序文件夹。
“C:\的Inetpub \ wwwroot的\ aspnet_client \ system_web \ 4_0_30319 \ crystalreportviewers13” 进入你的应用程序根目录下的asp快照。
![]()
答案 4 :(得分:0)
我认为您需要将其部署为.Net 4,而不是.Net 4.5。
答案 5 :(得分:0)
对于我们这些从.Net 4.0或更低版本运行迁移项目的人来说,我已经做了一个观察。看来,如果包含查看器的页面位于子目录中,则相对于该页面而不是Web应用程序的根目录生成图像URL。例如,如果您的页面是/gl/accounts.aspx,则图像可能是/gl/crystalimagehandler.aspx等。解决此问题的一种快速方法是将处理程序映射更改为以crystalimagehandler.aspx结尾的通配符,或将以下代码放在Global中的.asax
protected void Application_BeginRequest(object sender, EventArgs e)
{
var p = Request.Path.ToLower().Trim();
if (p.EndsWith("/crystalimagehandler.aspx") && p!= "/crystalimagehandler.aspx")
{
var fullPath=Request.Url.AbsoluteUri.ToLower();
var index = fullPath.IndexOf("/crystalimagehandler.aspx");
Response.Redirect(fullPath.Substring(index));
}
}
答案 6 :(得分:0)
我遇到过使用连接&#34; SQL Server Native Client 11.0&#34;创建了一些Crystal Reports的情况。和一些使用连接&#34; Microsoft OLE DB Provider for SQL Server&#34;。两者都在我们运行IIS 6的旧服务器上运行。但是,当我们迁移到运行IIS 8.5的新服务器时,某些报告按预期工作,而其他报告则显示空的Crystal Reports查看器。经过4-5天的拉动我的头发并尝试了我能想到的一切,我最终比较了有效的报告与不起作用的报告之间的所有内容。我发现的是有效的报告使用了&#34; Microsoft OLE DB Provider for SQL Server&#34;连接。一旦我做了这个改变,报告就完美了。