DCOMでExcel 等を使う方法

テーマ ・ プライベート♪ カテゴリ ・ Windows Server #6391

IIS7 DCOMでExcel 等を使う方法です。<img src="http://softonhouse.jp/images/blog/icon/35m.gif" border=0 />

Windows Server 2008 では、以下のエラーが出てしまい、DCOM(コンポーネントサービス)等で Excel が実行できません。<img src="http://softonhouse.jp/images/blog/icon/52m.gif" border=0 />

'FILE.xlsx'にアクセスできません。次のいずれかの理由が考えられます。
? ファイル名またはパスが存在しません。
? ファイルが他のプログラムによって使用されています。
? 保存しようとしているブックと同じ名前のブックが現在開かれています。

英文では以下の通りです。

Microsoft Office Excel cannot access the file 'FILE.xlsx'. There are several possible reasons:
? The file name or path does not exist.
? The file is being used by another program.
? The workbook you are trying to save has the same name as a currently open workbook.

Windows Server 2003 R2 では正常に動くのですが、Windows Server 2008 のデフォルトでは動作しません。

理由が解からず色々と実験を繰り返しましたが、色々とステップバイステップでデバックを行う事で解決方法が見つかりました。

何の事はない、2008 では SystemProfile が実行する(仮想的な)デスクトップフォルダが存在しないのです。

デスクトップが無ければ Excel は動かないって事なのですかね。

ちなみに、Windows Server 2003 R2 には存在していました。
C:\WINDOWS\system32\config\systemprofile\デスクトップ

日本語ではなく、「Desktop」というフォルダを作成する事になります。

Windows Server 2008 x86 では以下のフォルダを作成します。
C:\Windows\System32\config\systemprofile\Desktop

Windows Server 2008 x64 では以下のフォルダを作成します。
C:\Windows\SysWOW64\config\systemprofile\Desktop

これで解決する「はず」です。

その他のアプリケーション、Word などの Office 系はこれで動く(試してはいませんが)のではないでしょうか。

なんとまあ、人騒がせな。<img src="http://softonhouse.jp/images/blog/icon/44m.gif" border=0 />

丸一日使ってしまったではないか!<img src="http://softonhouse.jp/images/blog/icon/45m.gif" border=0 />

コメント1

  • 自己レス
    Windows 2008 Server(x64)と、Office 2010(x64) の組み合わせでは C:\Windows\System32\config\systemprofile\Desktop となります。