如何获取IIS托管环境打印权限 解决Crystal Report无法打印问题
Crystal Report IIS 托管后打印功能失效排查方案
权限配置排查
VS本地调试时应用默认以当前登录Windows用户身份运行,权限较高,而IIS托管后应用的运行身份为对应应用程序池的配置身份,权限不足是最常见的触发原因:- 给
C:\Windows\Temp目录、Crystal Report运行时安装目录、站点内报表文件存储目录,授予应用程序池运行身份(通常是IIS_IUSRS组、Network Service账户或自定义的池服务账户)读取、写入、修改权限 - 如果是服务端打印逻辑,需要给上述身份授予目标打印机的访问权限,同时确认打印机未设置为仅当前用户可用
- 给
运行时版本匹配检查
- 确认服务器上安装的Crystal Report运行时版本、架构(32/64位)和开发时引用的程序集完全一致
- 若IIS应用程序池开启了
启用32位应用程序选项,必须安装32位版本的Crystal Report运行时,反之安装64位版本
打印功能配置校验
检查Web.config配置是否开启了客户端打印支持,参考配置如下:<configSections> <sectionGroup name="businessObjects"> <sectionGroup name="crystalReports"> <section name="printControl" type="System.Configuration.NameValueSectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </sectionGroup> </sectionGroup> </configSections> <businessObjects> <crystalReports> <printControl allowClientPrinting="true" /> </crystalReports> </businessObjects>路径逻辑校验
代码中所有报表文件加载、临时文件生成的路径禁止使用本地开发时的绝对路径,统一用Server.MapPath()映射站点内相对路径,避免IIS环境下路径不存在导致报表加载失败,无法触发打印。
内容的提问来源于stack exchange,提问作者Giriharan
相关产品推荐
相关产品推荐

