2011-07-28 17 views
0

ご迷惑をおかけして申し訳ありませんが、Windows Server 2003 32ビット版で実行されているこのアプリケーションをWindowsサーバーに移行する際にASP.NETアプリケーションがExcelファイルをインポートできません2008 64ビット環境。 このバグを修正するにはどうすればよいですか?これは、Windows Server 2003 32ビット版では正常に動作するためです。Windows Server 2008 64ビットで実行するとASP.NETアプリケーションエラーが発生する

表示されるエラーレポートは次のとおりです。 * System.Runtime.InteropServices.COMException(0x800A03EC):HRESULTからの例外:Microsoft.Office.Interop.Excel.Workbooks.Openで0x800A03EC(文字列ファイル名、オブジェクトUpdateLinksは、読み取り専用オブジェクトC:\ inetpub \ wwwrootのAdmin_ImportRisk.CreateTempTable()で、オブジェクトの形式、オブジェクトのパスワード、オブジェクトWriteResPassword、オブジェクトIgnoreReadOnlyRecommended、オブジェクトの起点、オブジェクトデリミタ、オブジェクト編集可能、オブジェクト通知、オブジェクトコンバータ、オブジェクトAddToMru、オブジェクトローカル、オブジェクトCorruptLoad) \ ERMApproval \管理者\ ImportRisk.aspx.vbは:ライン66 *

自分のアプリケーションのライン66のコードは次のとおりです。 oBooks.Open(Server.MapPathの( "〜/ App_Dataに/ Risk.xls"))

私が試してみましたいくつかのシナリオ:

  1. 追加したネットワークサービスのDCOMの構成でMicrosoft Excelのアプリケーションへのユーザーと同じように使用して、アプリケーションプールのIDを設定します。

  2. すべての種類のユーザーをMicrosoft ExcelアプリケーションとDCOM構成のセキュリティでマイコンピュータに追加しました。そして、私はアプリケーションのフォルダにも多くの種類のユーザーを追加しました。 64ビット環境でWindows 32ビットにMicrosoft.Office.Interop.Excel.dllファイルを登録します。regsvr32.exeを使用し

  3. を実行するために、32ビットアプリケーションを強制するために使用さcorflags.exe

  4. コンポーネントサービス。

  5. 使用済みます。rundll32.exeは、32ビット環境

に32ビットのMicrosoft.Office.Interop.Excel.dllファイルを実行しますが、結果は同じです。 あなたが私を助けることができればそれは大きな名誉です。^^ ベストアンサー、 -imanuel-

答えて

0

単純な答えは、x86を対象とするようにプロジェクトをコンパイルすることです。これはプロジェクト設定の設定です。したがって、.netフレームワークは、64ビットにデフォルト設定するのではなく、実行時に32ビットアプリケーションを生成するだけです。これはcorflagsの設定と同じですが、複数のアセンブリがある場合は、すべてのアセンブリに対して完了していることを確認してください。アプリケーション自体は、32ビットのみをターゲットにする必要があります。

32ビットのCOMコンポーネントを使用していますが、64ビットアプリケーションでは実行できないため、強制的に32ビットにしてください。

ます。また、ここに記載されているように32ビットのコンテキストでそれを実行するためにIISを強制することができます

http://lostechies.com/gabrielschenker/2009/10/21/force-net-application-to-run-in-32bit-process-on-64bit-os/

また、エクセルの64ビットバージョンがサーバーにインストールされていないことを確認してくださいではなく、 32ビットバージョン。

+0

答えのためのThx ^^、先月あなたが与えたリンクを試しました。しかしそれでも効果はありません。そのプロジェクト設定はデスクトップアプリケーションでのみ行われますか?私のアプリケーションはASPです。NETのWebアプリケーションので、プロジェクトの設定は設定できません。詳細については、自分のアプリケーションで使用されているアプリケーションプールを32ビット環境で実行するように設定しましたが、それでも同じです –

関連する問題