1

クエリが入力されたExcelファイルを作成するバッチジョブを作成しました。問題は次のとおりです。

コードでWinAPIクラスとSysExcelApplicationクラスを使用しました。デバッグ後、バッチジョブで起動するとこれらのクラスが問題を引き起こすことがわかりました。winAPIServerを使用し、fileIOPermissionクラスでアクセス許可を管理しましたが、問題は解決していません。

バッチジョブなしで起動すると、コードは完全に機能し、エラーは発生しません。

誰かが私の問題を解決するためのアイデアを持っていますか?

エラーメッセージは次のとおりです。セッションサーバー側の置換(RunAs)が、クライアント側の処理でのみ使用できないメソッドを呼び出そうとしました。

4

3 に答える 3

2

サーバー上で実行されるバッチ ジョブから SysExcelApplication を使用することはできません。これは、Excel がクライアント UI へのアクセスを取得する必要があるクライアント アプリケーションであり、これは偽装されたサービスの実行と互換性がないためです。

これが本来あるべき論理ではないことはわかっていますが、数か月前にクライアントでこの問題に直面したときに、Microsoft エンジニアリング チームからこの回答を得ました。

考えられる解決策は、CSV ファイルなどを使用して回避できる場合は、Excel をまったく使用しないことです。または、これらのバッチをクライアント層で実行するようにします。これにより、クライアントは常にクライアント セッションで実行中のバッチを開く必要があります (クライアント ライセンスを消費します)。

于 2013-01-25T19:27:14.933 に答える