我们的应用程序存在一些性能问题,其中 Crystal Reports (XI) 托管在 WCF 服务中。在性能分析器的帮助下,我们能够发现对 ReportDocument.Load 的调用花费了 10 多秒。如果我们深入挖掘,最有问题的一点是 ReportClientDocumentClass.Open-method,它需要整整 10 秒。
我们这样调用 Load 方法:
dim doc As ReportDocument = New CrystalDecisions.CrystalReports.Engine.ReportDocument
doc.Load("filename")
报告文件与服务托管在同一台服务器上。
ReportDocument.Load 的“堆栈跟踪”如下所示:
ReportDocument.Load
ReportClientDocumentWrapper.EnsureDocumentIsOpened
ReportClientDocumentWrapper.Open
ReportClientDocumentClass.Open
就像我上面提到的那样,对 ReportClientDocumentClass.Open 的调用是“悬而未决”的。任何可能导致这种情况的想法?