首页 > 代码库 > VS2010水晶报表更新到服务器IIS

VS2010水晶报表更新到服务器IIS

 前提介绍:服务器上网站IIS发布,服务器上安装了VS2008(亲,自带水晶报表的哟)。服务器版本2003。本地用VS2010采用push模式做的报表。
        从开始到结束,尼玛,不知道牺牲了咱多少脑细胞。好吧,不多说了,就简单的说下遇到的问题及解决方案吧!
        Question 1:将水晶报表放到服务器上,发现出现报表加载不出来
        eg:先在服务器上安装CRRedist2005_x86_chs.msi 和CRRedist2005_x86.msi这几个文件,因为我们的服务器是Win2003,所以我选择了CRRedist2005_x86_chs.msi和CRRedist2005_x86.msi 这两个文件进行安装。用于自己的水晶报表为VS2010的,而服务器上市VS2008,所以需要在服务器上找到安装目录下的水晶报表DLL,分别为

还需要修改引用报表的页面的CrystalReportView 的版本,我这是version=10.5.3700.0

<%@ Register Assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"

    Namespace="CrystalDecisions.Web" TagPrefix="CR" %> OK, 通过一步一步的出现新问题,找寻新的解决方法,最终通过上述修改,得以加载出报表。
        Quesion2: 水晶报表的按钮图片显示为红叉叉         eg: 1.直接将IIS中的aspnet_client文件夹复制到网站的根目录下

               2.在c盘下找到aspnet_client文件夹将文件复制到网站的根目录下

        OK,按钮图片出来了,可是呢,新的问题又出来了 哎  ,心寒呀

        Question3:报表中的列表啥的都正常,唯独图表就显示为红叉叉
        eg:在网络上寻求了多种方法,最终通过在web.config文件中添加如下代码解决了(我通过2中的代码解决了)

1:

<appSettings>

 <add key="CrystalImageCleaner-AutoStart" value=http://www.mamicode.com/"true"/>

 <add key="CrystalImageCleaner-Sleep" value=http://www.mamicode.com/"60000"/>

 <add key="CrystalImageCleaner-Age" value=http://www.mamicode.com/"120000"/>

 </appSettings>

 

2:

<httpHandlers>

 <add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>

 <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>

 </httpHandlers>

 

3:

<handlers>

 <add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/>

<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

</handlers>

OK,水晶报表的加载和现实都正常咯 可是,你以为就此玩完了吗?嘿。嘿。嘿     Question 4:我是做了一个页面统计列表功能,使用了iframe切入相应的报表进来,可是当我重复点击多个列表之后,问题出现了。由于每次引用报表,没有释放掉,导致数量达到系统设置后,就出现系统提示。     eg:网上提供的解决方案有多种,一种是通过进入cmd,修改参数,把电脑默认加载的报表次数调大,之后重启 另一种呢,也就是我选择用的,在页面写个方法,在你引用rpt文件之后不用了,释放掉。

private void Un_pageLoad(object sender,eventArgs e){

rptDoc.DisPose(); // rptDoc为ReportDocuemnt对象

}   结束语----水晶报表看着简单,可是开始着手之后,遇到的问题是咱无法想到的,还有就是想做好一个好看的水晶报表,还得好好努力学习,反正我就目前来说只能做点简单的东西。