0

ウィンドウサーバー2008で作業しています。このサーバーでは、Excel 2003ファイルを開き、その内容を使用してxmlファイルを作成するvb.net 2008コンソールアプリケーションを開発したため、2つの状況があります
。1.プログラムの実行の違い:アプリケーションを Visual Studio から、または実行可能ファイルから直接実行すると、問題なく Excel を開いて処理しますが、このプログラムを実行する Windows タスク スケジューラまたは adtempus でタスクを構成すると、失敗し、この例外がスローされます。

HRESULT からの例外: 0x800A03EC- at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify、Object Converter、Object AddToMru、Object Local、Object CorruptLoad) at .Module1.convertExcelToXmlFile(String excelFile)

この例外についてはよく読みましたが、現時点では解決できないため、このプログラムをどのように実行できるか知りたいです両方の状況が同じサーバーにある場合、Visual Studioから正しく、または実行から直接実行されますが、タスクで実行すると失敗しましたか? この動作を修正する方法はありますか?


2. コンソール アプリケーションで open メソッドを使用して Excel ファイルを開くと、Excel のファイルが数秒間表示されてから閉じます。Excel ファイルの内容にアクセスする方法はありますが、Ms Excel ではファイルが表示されませんか?

ありがとう。

4

3 に答える 3

1

無人プロセスで Office Interop を使用しないでください。

Office が不安定な動作を示したり、/または、この環境で Office を実行するとデッドロックが発生します。

サーバー側のコンテキストで実行されるソリューションを構築している場合は、無人実行に対して安全になっているコンポーネントを使用するようにしてください。または、コードの少なくとも一部をクライアント側で実行できる代替手段を探す必要があります。サーバー側のソリューションから Office アプリケーションを使用する場合、アプリケーションは正常に実行するために必要な機能の多くを欠いています。さらに、ソリューション全体の安定性に関してリスクを負うことになります。

http://support.microsoft.com/?id=257757

Excel ドキュメントを操作し、無人で正しく実行できる製品は多数あります。

于 2012-05-30T13:53:08.977 に答える
0

まだ理解していない場合に備えて、私にとって最も可能性の高い解決策は、次の URL にあります。

https://social.msdn.microsoft.com/Forums/en-US/b81a3c4e-62db-488b-af06-44421818ef91/excel-2007-automation-on-top-of-a-windows-server-2008-x64?フォーラム=イノベーションオフィス

サーバーが 64 ビットの場合は、以下のパスに「Desktop」という名前のフォルダーを作成します (例: C:\Windows\SysWOW64\config\systemprofile\Desktop)。

サーバーが 32 ビットの場合、このフォルダーをC:\Windows\System32\config\systemprofile\Desktopにしてください。

于 2014-12-02T15:05:49.480 に答える
0

開こうとしている Excel ファイルはネットワーク上にありますか?

その場合、タスク スケジューラ サービスとそれが実行するすべてのジョブが、ネットワーク アクセスが禁止されているローカル SYSTEM アカウントで (既定で) 実行されていることが原因である可能性が最も高いです。

別のアカウントで実行するようにタスクを変更した場合 (たとえば、リモート ファイル共有の権限を付与したドメイン アカウントなど)。(この変更は、他のスケジュールされたタスクの実行方法に影響を与える可能性があることに注意してください。そのため、必要な権限を十分に確認する必要があります。)

于 2012-05-30T13:57:04.280 に答える