C#.netWebアプリを持っています。ユーザーがWebページのボタンをクリックし、サーバーがExcelスプレッドシートを開いてデータを書き込み、ユーザーがドキュメントを保存するようにします。これは、Visual Studio2010とOffice2010を使用してローカルで機能します。ただし、サーバーでは、次のエラーが発生します。
System.Runtime.InteropServices.COMException(0x80080005):CLSID {00024500-0000-0000-C000-000000000046}のコンポーネントのCOMクラスファクトリの取得に失敗しました。次のエラーが原因です:80080005サーバーの実行に失敗しました(HRESULTからの例外:0x80080005(CO_E_SERVER_EXEC_FAILURE ))。
私は調査して、dcomconfigを開き、MicrosoftExcelアプリケーションへのアクセス許可を持つユーザーを追加することを示す多数の回答を見つけました。私のサイトはパススルーセキュリティに設定されているので、自分自身を追加しました。私はサーバーの管理者なので、管理者がアクセスできるようにしました。また、ネットワークサービスのデフォルトのアプリプールを追加しました。また、ASP.NETマシンアカウント。念のため、データベースに接続するときにアプリが使用するアカウントを追加しました。それでもまったく同じエラーが発生します。
私のサーバーは64ビット、Office 2007、IIS7です。
私のコードは次のとおりです。
{
try
{
Excel.Application xXL = null;
Excel.Workbook xWB = null;
Excel.Worksheet xSheet = null;
xXL = new Excel.Application();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}