こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

ASP.NETからEXCEL起動

初投稿です。よろしくお願いします。

現在、諸事の事情により、ASP.NETからサーバ上のEXCELのマクロを実行しようとしてますが、起動できずに困っております。
過去ログを探してみて、偽装とDCOMの構成は行いました。
EXCELが実行できるならと思い、ATコマンドでもbatでもたたいてみましたが、
マクロの実行はできませんでした。

諸兄のご助言をお願いしたく思います。

【環境】
OS:WinXP Pro SP2
VisualStadio.Net 2003
Framework1.1
IIS 5.1
MicrosoftOffice 2003

【やりたいこと】
ASP.NETで作成したプログラム上でブラウザのボタンを押したとき、
サーバーのC:\check.xlsを
Dim p As Process = Process.Start("EXCEL", "C:\check.xls")
で起動し、
書いてあるマクロを実行したい。

【現状】
タスクマネージャで確認したところ、
EXCEL.exe ユーザ名ASPNET
は表示されたが
マクロは動かなかった。

デバッグで
System.Security.Principal.WindowsIdentity.GetCurrent().Name
を行ったところ、"マシン名\testuser"となり、
偽装は成功しているよう。

【準備したこと】
1.DCOMの構成のユーザ追加:
管理ツール/コンポーネントサービス/コンポーネントサービス/コンピュータ/マイコンピュータ/DCOMの構成/Microsoft Excel アプリケーションのプロパティ/セキュリティ/

「起動とアクティブ化のアクセス許可」のカスタマイズ項目を編集し、testuser
とASPNETを追加
「アクセス許可」のカスタマイズ項目を編集し、testuserと
ASPNETを追加


2.偽装の有効化:
Web.configに
<identity impersonate="true" userName="testuser" password="testuser" />
を追加
testuserはAdministrator権限


何とかしたいのですが、方法のご指導をよろしくお願いします。

投稿日時 - 2008-01-25 01:24:02

QNo.3711297

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

可能性として考えられるのは、「マクロ」ですね。
マクロを含んだExcelファイルを普通に開いた場合、
マクロの警告がでますよね。(セキュリティレベルにも
よりますが)
ですから、ASP.NETで同様なことを行っても、
マクロの警告が出ていて、応答待ち状態になっていませんか?

もしそうだとしたら、
・セキュリティレベルを下げる
・マクロを使用せずに、マクロと同等な処理をASP.NET側で実行する。
・・マクロを使用せずに、マクロと同等な処理をVBSで記述し、VBSをバッチファイル化し、ASP.NETから起動する。

こんなところでしょうか?

投稿日時 - 2008-01-25 16:58:28

補足

すみません、書き忘れてました。

・セキュリティレベルを下げる
EXCELファイルをダブルクリックしてマクロが動く(ファイルを書き出す)ことは確認してます。
セキュリティも「低」にしております。

・マクロを使用せずに、マクロと同等な処理をASP.NET側で実行する。
それはごもっともなのですが、大人の事情というやつで・・・

・マクロを使用せずに、マクロと同等な処理をVBSで記述し、VBSをバッチファイル化し、ASP.NETから起動する。
やはり、vbs等でおこなうほうがいいのかな・・・と思ったりしています。

投稿日時 - 2008-01-25 23:36:02

あなたにオススメの質問