【问题标题】:Crystal Report "The system cannot find the path specified" with WebAPI and Oracle 11g使用 WebAPI 和 Oracle 11g 的 Crystal Report“系统找不到指定的路径”
【发布时间】:2015-12-02 21:10:24
【问题描述】:

从 WebAPI Restful Web 服务导出时出现“系统找不到指定的路径”错误。我的开发环境是:

  • Windows 7 SP1 x64 位
  • Visual Studio 2013 社区
  • Crystal Report 支持包 14 (v.13.0.14.1720)
  • DotNet 4.5.1 oracle 即时客户端 11.2(x86 和 x64)
  • Oracle 11g R2

我看到很多帖子,提示“系统找不到指定的路径”与数据库连接设置不正确有关。为了调试,我做了以下事情来消除这种可能性:

  1. 删除所有子报告
  2. 仅显示具有单列的单个表
  3. 以可执行程序的形式运行报告(并且可以运行)

由于我能够在 exe 程序中导出报告,我在想水晶报告可能与 WebAPI 不兼容。为了检查,我创建了一个连接到 MS SQL Server 的报告,它可以工作。

鉴于我已经证明没有数据库连接错误,并且可以从 WebAPI 生成水晶报告(至少对于 MSSQL),如果有人能帮助我找出问题所在,我将不胜感激。

这是我目前尝试的源代码 https://bitbucket.org/yilik01/crystalreporttest.git

这是错误异常

{
  "Message" : "An error has occurred.",
  "ExceptionMessage" : "The system cannot find the path specified.\r",
  "ExceptionType" : "System.Runtime.InteropServices.COMException",
  "StackTrace" : " 
  at CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.Export(ExportOptions pExportOptions, RequestContext pRequestContext)\r\n 
  at CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext)\r\n 
  at CrystalDecisions.CrystalReports.Engine.FormatEngine.ExportToStream(ExportRequestContext reqContext)\r\n 
  at CrystalDecisions.CrystalReports.Engine.FormatEngine.Export(ExportRequestContext reqContext)\r\n 
  at CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToDisk(ExportFormatType formatType, String fileName)\r\n 
  at reportManager.ReportManager.generateOracleReport() in c:\\Temp\\WebApplication1\\reportManager\\ReportManager.cs:line 31\r\n 
  at WebAPI.Controllers.DefaultController.getOracleReport() in c:\\Temp\\WebApplication1\\WebApplication1\\Controllers\\DefaultController.cs:line 16\r\n 
  at lambda_method(Closure , Object , Object[] )\r\n 
  at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.b__9(Object instance, Object[] methodParameters)\r\n 
  at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)\r\n 
  at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n 
  at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n 
  at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n 
  at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n 
  at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n 
  at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()"
}

【问题讨论】:

    标签: oracle visual-studio-2013 oracle11g crystal-reports asp.net-web-api


    【解决方案1】:

    您正在使用 Crystal 报表类,该类仅在使用 COM 的 Windows 可执行文件中运行时才有效。默认情况下,Web 服务器(如 IIS)无权访问 COM 对象,也不应该因为这是一个安全问题。

    幸运的是,水晶有一组可以在网络服务器中使用的库。我们在web项目中直接引用的有CrystalDecisions.CrystalReports.Engine、CrystalDecisions.ReportSource和CrystalDecisions.Shared

    这些在您安装“Crystal Reports for .NET Framework”redist 后可用

    【讨论】:

      猜你喜欢
      • 2015-03-20
      • 1970-01-01
      • 1970-01-01
      • 2011-02-23
      • 2018-12-12
      • 2016-04-23
      • 2017-01-04
      • 2014-04-24
      相关资源
      最近更新 更多