Crystal Reports .Net无效的文件名错误

时间:2016-08-31 15:54:36

标签: asp.net crystal-reports

我们在其中一个报告服务器上遇到了一个非常奇怪的问题(在Windows 2008服务器上的IIS中运行.Net 4的Crystal Reports)。尝试运行报告时,我们收到错误消息“加载报告失败”,其内部异常为“文件名无效”。这几个月刚刚开始,多年来一直运作良好。

我已经在网上查了一下,我找到的所有建议都被尝试无济于事。关于这个问题的一些注意事项:

  • 我在互联网上找到的所有内容都表明这是生成临时报告文件的问题。我们已将注册表设置TemDir更改为指向与标准临时目录不同的位置。
  • 我们可以看到在所需目录中创建临时.rpt文件 ,即使我们收到错误也是如此。我在本地拉了一个,它在Crystal Reports设计器中打开了我想要的数据。
  • 我们不会尝试将报告导出为任何文件格式,我们只是使用标准报告渲染器。
  • 这只发生在一个环境中。当我们复制在我们的高级环境Crystal服务器中工作的代码时,我们仍然会得到相同的错误。
  • 我们的服务器管理团队向我们保证,在问题出现之前没有发生任何服务器更改(尽管我不确定我们是否可以明确证明)。

我尝试了一些修复程序(不一定按此顺序):

  • 为网站提供对C:
  • 的根目录的读/写访问权限的帐户
  • 将网站使用的帐户添加到管理员本地组
  • 删除,然后将读/写/执行权限重新添加到临时报告目录。 (与上面的结果相同 - 创建临时文件,但我们仍然得到错误。)
  • 为网站提供访问C:\ Windows \ Temp的帐户(因为我们指定了临时目录,但没想到为什么这很重要,但我认为无论如何都会给它一个旋转)
  • 停止/启动IIS,即应用程序池,重新启动服务器。

有没有人有任何其他建议我们可以看看这个问题?我的直觉告诉我,仍有一些挥之不去的权限问题,但我找不到它。

根据要求,以下是发生错误的一些代码:

 Private Sub OpenReportFile()
    Dim reportPath As String = System.Configuration.ConfigurationManager.AppSettings("ReportFileLocation")
    If _reportDefinition Is Nothing Then Exit Sub
    _theReport = New CrystalDecisions.CrystalReports.Engine.ReportDocument
    _theReport.Load(reportPath & _reportDefinition.ReportFilePath, OpenReportMethod.OpenReportByTempCopy)
End Sub

_theReport.Load上会抛出错误。

AppSettings(“ReportFileLocation”)包含.rpt文件所在的基本文件夹(D驱动器上的本地路径)。

_reportDefinition是一个包含特定报告路径的本地域对象。

当两者合并时,reportPath的值将是本地路径,如“D:\ Inet \ docroot \ WebCrystal \ Reports \ MyReportFile.rpt”

每个报告都会出现此问题。

0 个答案:

没有答案