iis 6.0でホストされているWebサービスがあり、Excelテンプレートファイルを開きます。また、マクロ「t.xla」は、Excelを開いた後、クライアントがダウンロードできるようにデータベースからデータを取得する必要があります。問題は、マクロが実行されていないように見えることです。コードは次のようなものです(私は今は会社にいないので、擬似コードを書くだけです):
System.Diagnostics.ProcessStartInfo pStartInfo = new ProcessStartInfo(excelAppPath, excelTemplatePath);
//nomal window is in debug mode, createNoWindow will be used in product envirionment
pStartInfo.WindowStyle = ProcessWindowStyle.Nomal;
System.Diagnostics.Process process = new Process();
process.Start(pStartInfo);
log.Info("Excel Process was started");
このコードを実行すると、1)タスクマネージャーからexcel.exeが開始されたことがわかります。2)excel.exeはデスクトップにウィンドウを作成しません。iisが制限されているため、ウィンドウを作成する必要があると誰かが言います。3)マクロで書き込む必要のあるログが存在しないため、マクロ「t.xla」は実行されていないと確信しています。Excelテンプレートのいずれかをダブルクリックすると、ログが見つかります。
これで、iisワーカープロセスがローカルのSYSTEMアカウントで実行され、IIS管理サービスがデスクトップと対話できるようになりました。また、テンプレートファイルとログファイルがログインできるディレクトリは、誰でも書き込むことができます
誰かアドバイスをいただけますか?前もって感謝します。