SAP Integration KIT と Crystal Reports 2008 を使用しています。Crystal Reports は Winform (VB.net Windows アプリケーション) (VS 2005 with net fx 2.0) に表示されています。
開発環境は 32bit で、問題なく動作しています。レポートはローカル BI サーバーで動作します。問題は本番サーバーにあります。本番サーバーは 64 ビットです。
Windows exe は、どの構成でもインストールされます。
32ビット版の「SAP Integration KIT and Crystal Reports 2008」がインストールされています。
Crystal レポートを開くと、次の例外が発生していました。
エラー: 「Crystal Reports ランタイムのロード中にエラーが発生しました。Crystal Reports レジストリ キーのアクセス許可が不十分であるか、Crystal Reports ランタイムが正しくインストールされていません。適切な Crystal Reports 再配布可能ファイル (CRRedist*.msi) をインストールしてください。 Crystal Reports ランタイムの正しいバージョン (x86、x64、または Itanium) が必要です。
このために、corflag.exe ツールを使用して、exe の 32 ビット フラグを 32 ビット + に変更しました。上記のエラーは削除され、次の新しいエラーが発生します。一時フォルダー/レポート フォルダーなどのアクセス許可を確認しましたが、すべて問題ありません。ここで立ち往生しています。少しのヘルプ/ガイダンスが週末を救うことができます:)。
タイプ: CrystalDecisions.Shared.CrystalReportsException、CrystalDecisions.Shared、Version=12.0.2000.0、Culture=neutral、PublicKeyToken=692fbea5521e1304 メッセージ: レポートの読み込みに失敗しました。ソース: CrystalDecisions.CrystalReports.Engine ヘルプ リンク: データ: System.Collections.ListDictionaryInternal TargetSite: Void EnsureDocumentIsOpened() スタック トレース: CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() で CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod、Int16 parentJob)、CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(文字列ファイル名)、BizzCare.frmReportViewer.frmReportViewer_Load(オブジェクト送信者、EventArgs e)
追加情報:
マシン名: xxx
タイムスタンプ : 2012 年 6 月 14 日 7:50:15 AM
FullName : Microsoft.PracticesEnterpriseLibrary.ExceptionHandling、バージョン = 3.1.0.0、カルチャ = ニュートラル、PublicKeyToken = null
AppDomainName : abc.exe
スレッド ID : 管理者
WindowsIdentity: comp\user 内部例外 --------------- タイプ: System.Runtime.InteropServices.COMException、mscorlib、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089 メッセージ: エラーLast12MonthsSales{9D0A761A-8021-42E6-8ECF-CE2C0167F5B0}.rpt ファイル内: Crystal Report オブジェクト リポジトリへのログオンに失敗しました。ソース: 分析サーバー ヘルプ リンク: エラーコード: -2147217397 データ: System.Collections.ListDictionaryInternal TargetSite: Void Open(System.Object ByRef, Int32) スタック トレース: CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open (オブジェクト & DocumentPath、Int32 オプション) で、CrystalDecisions.ReportAppServer で。