QA@IT
この質問・回答は、@ITの旧掲示板からインポートされたものです。

サーバーでのエクセルのアクセスについて

はじめまして。
現在以下の環境でWebページを作成しています。
このページではエクセルを出力しようとしているのですが、
エクセルファイルをオープンすると、以下のエラーが表示されてしまいます。
どなたか回避策をご存じないでしょうか?

エラー内容に含まれているように、エクセルのセキュリティに
ASPNETを追加し、フルアクセスにしたのですが、
同様のエラーが発生してしまいます。

[開発環境]
WindowsXP Professional
VisualStudio 2005
ASP.net 2.0

[エラー内容]
'/OutputExl' アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------

CLSID {00024500-0000-0000-C000-000000000046} を含むコンポーネントの COM クラス ファクトリを取得中に、次のエラーが発生しました: 80070005。
説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

例外の詳細: System.UnauthorizedAccessException: CLSID {00024500-0000-0000-C000-000000000046} を含むコンポーネントの COM クラス ファクトリを取得中に、次のエラーが発生しました: 80070005。

この ASP.NET は、要求されたリソースへのアクセスを許可されていません。要求された ASP.NET へのリソースへアクセスを許可するかどうかを検討してください。ASP.NET プロセスには、アプリケーションに偽装が実行されていない場合は、通常、インターネット インフォメーション サーバー 5 では {コンピュータ名}\ASPNET、インターネット インフォメーション サーバー 6 ではネットワーク サービスが使用されます。 経由でアプリケーションに偽装が実行されている場合、ユーザーは、通常 IUSR_MACHINENAME に設定された匿名ユーザーか、または認証された要求ユーザーになります。

ASP.NET にファイルへのアクセスを許可するには、エクスプローラでファイルを右クリックし、[プロパティ] を選択して、[セキュリティ] タブを選択します。[追加] をクリックして、適切なユーザーまたはグループを追加します。ASP.NET アカウントを強調表示し、希望するアクセスのボックスをチェックします。

ソース エラー:

現在の Web 要求の実行中にハンドルされていない例外が生成されました。障害の原因および発生場所に関する情報については、下の例外スタック トレースを使って確認できます。

スタック トレース:

[UnauthorizedAccessException: CLSID {00024500-0000-0000-C000-000000000046} を含むコンポーネントの COM クラス ファクトリを取得中に、次のエラーが発生しました: 80070005。]
OutputExl.UserMenu.CExcelOpe.ExcelOpen() in D:\OutputExl\UserMenu\CExcelOpe.cs:53
OutputExl.UserMenu.NgInput.BTN_OUTPUT_Click(Object sender, EventArgs e) in D:\OutputExl\UserMenu\NgInput.aspx.cs:477
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102

--------------------------------------------------------------------------------
バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.42; ASP.NET バージョン:2.0.50727.210

質問者:wild45

回答


* Office のサーバーサイド オートメーションについて
http://support.microsoft.com/kb/257757/ja


を参考にされてみてはいかがでしょうか?

いづれにせよ、サーバサイドのOfficeオートメーションは問題がおきやすいです。
個人的には、なるべく避けたほうが良いかと思っています。

投稿者:turutosiya

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。