在线等:水晶报表发布的问题,

吴先生大官人 2014-04-01 04:38:01
一个小项目,需要用到水晶报表打印,但是在本地VS2010环境上跑着没问题,本地发布后运行也没有问题,但是发布到服务器后,就无法访问报表页面,报一下内容错误:
Server Error in '/' Application.
--------------------------------------------------------------------------------

无效文件名。
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Runtime.InteropServices.COMException: 无效文件名。

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[COMException (0x800001fb): 无效文件名。]
CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) +0
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) +95
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +270

[CrystalReportsException: 加载报表失败。]
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +333
CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob) +876
CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename) +84
zerui.Web.Report.CrystalHelper.CreateReport(String strSql, String cryPath, String tableName, CrystalReportViewer crystalReportViewer) in F:\08prjSVN\814xifeng_sys\program\trunk\zerui.Web\Report\CrystalHelper.cs:32
zerui.Web.Report.UserInfo.Page_Load(Object sender, EventArgs e) in F:\08prjSVN\814xifeng_sys\program\trunk\zerui.Web\Report\UserInfo.aspx.cs:13
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207。

我的开发环境是VS2010,下载的水晶报表版本是CRforVS_13_0_7,网上找了好多方案,什么权限,安装东西什么的。都没有解决。

跪求高人支招,如何解决,如果能详细告诉在服务器端需要如何配置更好!
谢谢了。第一次弄报表,前前后后折腾3天了。
...全文
261 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
e472413641 2014-09-04
  • 打赏
  • 举报
回复
我也遇到这个问题,应该是权限问题,C:\Windows\temp 这个文件夹给everyone完全控制,项目文件夹也everyone完全控制,然后就行了 ,但是这样貌似不安全,如果这样成功的话,你再去研究一下iis是那个用户,然后再单独给权限,我没时间去研究了
kielin 2014-06-02
  • 打赏
  • 举报
回复
你这个问题看上去没法load *.rpt文件。 1. 首先看看你项目编译的时候有没有Warning之类的信息,里面有 "CRVsPackageLib","CrystalDecisions.ReportAppServer.ClientDoc" F4属性, 改变 Embed Interop Types = False 2. 为了保持*.rpt设计时和运行时的兼容性,把*.rpt及相应cs文件删除掉,再添加回项目中。 3. 同时,再查看相应的*.rpt文件属性,把 Build Action Embedded Resource--->改为Content. 重新 Build--->publish
弑天屠龙 2014-04-04
  • 打赏
  • 举报
回复
引用 5 楼 brainlinjue 的回复:
看出问题呀,关权限什么事哦?又不是提示401错误 Exception Details: System.Runtime.InteropServices.COMException: 无效文件名 这个无效是因为你在开发的时候,那台电脑可能是安装EXCEL2013版本,所以调用的引用集是这个版本,若是服务器是安装其他版本的EXCEL,,这个引用集就没用了。重新在服务器中安装跟你电脑一样的EXCEL版本,记住,一定要完全安装,而且还是要完整版的,剩下的就是权限配置了,network,everyone权限全开
服务器上也是WPS?IIS设置经典的或者DEFAULT WEB SITE模式,再重新启动IIS试试
弑天屠龙 2014-04-04
  • 打赏
  • 举报
回复
你的文件模板和代码里面调用的模板名也是一样的么?
吴先生大官人 2014-04-03
  • 打赏
  • 举报
回复
引用 4 楼 jimil 的回复:
水晶报表应该是network service权限,如果上面还不行,就把network service权限提上去试试
temp权限, report报表所在目录的权限也都给了。
吴先生大官人 2014-04-03
  • 打赏
  • 举报
回复
引用 5 楼 brainlinjue 的回复:
看出问题呀,关权限什么事哦?又不是提示401错误 Exception Details: System.Runtime.InteropServices.COMException: 无效文件名 这个无效是因为你在开发的时候,那台电脑可能是安装EXCEL2013版本,所以调用的引用集是这个版本,若是服务器是安装其他版本的EXCEL,,这个引用集就没用了。重新在服务器中安装跟你电脑一样的EXCEL版本,记住,一定要完全安装,而且还是要完整版的,剩下的就是权限配置了,network,everyone权限全开
我开发用的电脑刚重新做的系统,没装office,一直用的wps2013。
jimil 2014-04-03
  • 打赏
  • 举报
回复
会不会是服务器策略组的问题? 你可以发布一个在自己本机的IIS上测试一下呀,一般只要给了WINDOWS/TEMP和报表的权限就可以了,水晶报表我以前经常用,只用这样就行了,如果你连network service的帐号都提上来还是一样的结果,建议自己机子上或找一台同事用的IIS测试一下。
  • 打赏
  • 举报
回复
看出问题呀,关权限什么事哦?又不是提示401错误 Exception Details: System.Runtime.InteropServices.COMException: 无效文件名 这个无效是因为你在开发的时候,那台电脑可能是安装EXCEL2013版本,所以调用的引用集是这个版本,若是服务器是安装其他版本的EXCEL,,这个引用集就没用了。重新在服务器中安装跟你电脑一样的EXCEL版本,记住,一定要完全安装,而且还是要完整版的,剩下的就是权限配置了,network,everyone权限全开
jimil 2014-04-01
  • 打赏
  • 举报
回复
水晶报表应该是network service权限,如果上面还不行,就把network service权限提上去试试
jimil 2014-04-01
  • 打赏
  • 举报
回复
windows/temp的everyone权限也加了? 报表所在的目录的everyone权限你也加过了?
吴先生大官人 2014-04-01
  • 打赏
  • 举报
回复
引用 1 楼 jimil 的回复:
发布的?把水晶报表文件复制到发布文件夹去
发布的时候已经把报表文件包含在内容中了。
jimil 2014-04-01
  • 打赏
  • 举报
回复
发布的?把水晶报表文件复制到发布文件夹去

4,820

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧