【发布时间】: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
我看到很多帖子,提示“系统找不到指定的路径”与数据库连接设置不正确有关。为了调试,我做了以下事情来消除这种可能性:
- 删除所有子报告
- 仅显示具有单列的单个表
- 以可执行程序的形式运行报告(并且可以运行)
由于我能够在 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