none
ASP.NETでエクセル参照ができない。 RRS feed

  • 質問

  • 以下の事でこまっています。

     VWDを使ってASP.NET(VB)で開発を行っています。エクセルを使用するために参照設定よりCOMを選んで、Microsoft Office xx Object Libraryを参照し、エクセル操作のプログラムを作成しました。開発環境では作動確認がとれています。

    これをWindows Server2008R2 でIIS7の環境で動かそうとすると内部エラーが発生してしまいます。調べた結果、参照設定でエクセルを参照できていないようでしたので、VWDをサーバにインストールし参照設定を行った所、"Microsofot Office xx.0 Object Librayへの参照を追加できませんでした。タイプライブラリを.NETアセンブリに変換できませんでした。"とのエラーがでます。

    そこで色々しらべて、PIAをインストールし、サーバにVSもインストールしてみました。Windows/assemblyにはMicrosoft.Office_Interop.Excelが公開キートークンとともにインストールされているのは確認しました。

    VB.NETで参照するとうまく参照されますが、参照される内容がローカルで作成した参照内容と異なります。(VBはassembly/GAC_MSIL/Office/内のDLLを参照、ASP.NETは  assembly="Microsoft.Office.Interop.Excel, Version=XX.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/>を参照)

    この様な状況なのですが、どうすればASP.NET(VWD)よりエクセル参照設定が可能になるのでしょうか。わかる方がいらっしゃったら教えて下さい。


    2012年9月10日 6:39

回答

  • いろいろと情報ありがとうございました。

    Officeをサーバで動かすのは問題がおおそうなので、マイクロソフトが推奨する代案を検討してみます。

    2012年9月11日 3:28

すべての返信

  • まず、ASP.NETでサーバーにあるExcelを操作することは推薦もサポートもされていないことをご存じでしょうか?

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

    よって、このような動作については保障がありませんので、たまたま解決して動いたとしても、他の方法を模索されることをお勧めします。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2012年9月10日 6:48
    モデレータ
  • ASP.NET、IIS上でエクセル操作すべきではない点、これはtrapemiyaさんが指摘している通りですが、もう1つ問題があります。

    PIAはExcel本体ではありません。よってPIAだけをインストールしてもExcelが動作するわけではありません。

    • 回答の候補に設定 t98907-2 2013年5月26日 5:22
    2012年9月10日 7:55
  • 問題があるのはすでにレスされている通りですが・・・

    他にも、Session 0 分離による問題も出るかもしれませんね。直接問題となるようなコードは書いてなくても、何かの拍子にダイアログなどが表示されたるすることもあるかもしれませんし。詳しくは以下のページからダウンロードできるドキュメントを参照ください。

    Windows でのサービスとドライバーへの Session 0
    http://msdn.microsoft.com/ja-jp/windows/hardware/gg463353

    2012年9月10日 12:40
  • いろいろと情報ありがとうございました。

    Officeをサーバで動かすのは問題がおおそうなので、マイクロソフトが推奨する代案を検討してみます。

    2012年9月11日 3:28