博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sharepoint学习笔记---如何在Sharepoint2010网站中整合Crystal Report水晶报表(显示数据 二)...
阅读量:5317 次
发布时间:2019-06-14

本文共 1058 字,大约阅读时间需要 3 分钟。

    在中,解释了如何把Crystal Report整合到Sharepoint2010并把报表数据显示出来,但这样并不完整,因为我们在开发时是以系统帐户进行开发和部署的,而当部署后,就会出现因为访问权限问题造成的报错。在我的开发中遇到一个问题表现为(当以普通用户帐号登录时):

    1、如果报表没有涉及传递任何参数:则报表能正常显示出来。
    2、如果报表涉及到传参:则会出现 "Fail to render the page"错误。

               

    由此推断,错误是发生在报表参数的传递过程中的。
    首先想到的解决办法是采用身份模拟(Impersonation)或通过SPSecurity.RunWithElevatedPrivileges来提高操作权限级别的方式来解决访问权限问题。但两者都失败了。分析原因是Crstalreportviewer在进行参数操作时仍然是通过的上下文用户权限进行操作,所以我们的身份模拟或RunWithElevatedPrivileges方式并没有作用到Crstalreportviewer这一过程。所以只有另想方法,问题就归结到"到底是什么资源拒绝了普通帐户的访问"。
   使用Fiddler和Httpwatcher进行跟踪和测试都没把问题解决掉,最后使用了Process Monitor,对比系统帐户和普通帐户的访问差异,结果发现蛛丝马迹

     

于是修改Windows目录AppData(C:\Windows\ServiceProfiles\NetworkService\AppData)的权限,增加Everyone的读写(read,write)权限。问题终于得以解决。这说明Crstalreportviewer在获取参数后,要通过w3wp进程在C:\Windows\ServiceProfiles\NetworkService下创建临时文件,而2008下默认配置下网络普通用户对此目录没有权限,于是抛出上述错误。

当然,如果在报表中嵌入了图片,则需要修改存放图片的临时文件的文件夹的权限。我所作的修改是设置everone权限给

"C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\cr_tmp_image___sd1-sp1dev_2010 "从而使嵌入的logo图片显示出来。

希望此文对大家有所启发。

 

转载于:https://www.cnblogs.com/wsdj-ITtech/archive/2011/07/15/2107170.html

你可能感兴趣的文章
【Crash Course Psychology】2. Research & Experimentation笔记
查看>>
两数和
查看>>
移动设备和SharePoint 2013 - 第3部分:推送通知
查看>>
SOPC Builder中SystemID
查看>>
MySQL数据库备份工具mysqldump的使用(转)
查看>>
NTP服务器配置
查看>>
【转】OO无双的blocking/non-blocking执行时刻
查看>>
ul li剧中对齐
查看>>
关于 linux 的 limit 的设置
查看>>
HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
查看>>
vim中文帮助教程
查看>>
MySQL基础3
查看>>
云计算数据与信息安全防护
查看>>
RxJS & Angular
查看>>
面向对象(多异常的声明与处理)
查看>>
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
无法根据中文查找
查看>>
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>