0

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管理サービスがデスクトップと対話できるようになりました。また、テンプレートファイルとログファイルがログインできるディレクトリは、誰でも書き込むことができます

誰かアドバイスをいただけますか?前もって感謝します。

4

1 に答える 1

0

ローカルシステム以外の別のアカウントを使用することをお勧めします。その方法で、そのアカウントとしてログインし、同じことを試して、マクロなど、物事が先に進むのを妨げる可能性のあるダイアログやエラーがポップアップするかどうかを確認できます。セキュリティ設定。Microsoftはこの方法でのExcelの実行をサポートしていませんが、それはあなたがそれを動作させることができないという意味ではありません。この記事をチェックしてください。考慮すべき詳細がたくさんあります:http ://support.microsoft.com/kb/257757

于 2013-01-19T03:52:02.570 に答える