3

MS Office 2007 .NET C# Interop ライブラリを Vista で動作させる方法を知っている人はいますか?

Windows サービスとして実行するようにセットアップした .NET C# アプリケーションがあります。このプログラムは、状況に応じて Word または Excel のテンプレートを開き、その内容を変更してからドキュメントを保存します。Office 2007 を使用して Windows Server 2003 または XP マシンで実行していた場合、これらすべてがうまく機能しました。すべてを Server 2008 ボックスに移動すると、すべてが機能しなくなりました。たとえば、Excel では、ファイルが明らかにそこにあるときに Excel ファイルを開くことができないという COM 例外が発生し、手動で実行すると問題なく開くことができます。Windows サービスは、マシンにログインするのと同じユーザー アカウントで実行されており、そのアカウントは管理者です。

誰が何をすべきか考えていますか?

4

8 に答える 8

1

Officeクライアントをサーバー側のアプリとして実行することは絶対に避けてください。ファイル形式としてxmlを使用することを検討してください(Office 2007の場合はxlsx、(ある程度)古いバージョンの場合はExcelブックxsdを使用します)。そうすると、サーバーでExcelAPIを使用できなくなります。

于 2008-12-30T19:44:27.957 に答える
1

http://www.microsoft.com/downloads/details.aspx?FamilyID=59daebaa-bed4-4282-a28c-b864d8bfa513&displaylang=enからインストール可能ファイルを取得し ます

システムにインストールし、ソリューションでExcel DLLを参照すると、うまくいくはずです。

于 2008-11-11T16:27:44.423 に答える
1

基本的に Office の自動化を行うなと言っている Microsoftの興味深い記事を見つけました。

于 2008-11-07T19:16:46.067 に答える
0

サーバーにプライマリ相互運用機能アセンブリがインストールされていますか? これらは通常、GAC にあり、プログラムをビルドするときに bin ディレクトリには含まれないため、サーバーにローカルにインストールする必要があります。

于 2008-10-27T20:10:56.887 に答える
0

Office について覚えておくべきことがあります。x86 のみであるため、x64 でアプリケーションを作成すると、Office の基になる COM オブジェクトにアクセスできなくなります。アプリケーションを x86 でコンパイルする必要があります。

これを行うには、プロジェクトのプロパティに移動し、ビジュアル スタジオのビルド タブで x86 を選択します。

これはすべて、アプリが x64 環境で開発/実行されていることを前提としています。

于 2008-11-12T14:00:29.807 に答える
0

マシンにログオンしているアカウントを残しますか? Office はサーバー側のアプリではないため、デスクトップ コンテキストなしで実行可能ファイルを起動しようとすると、ランダムなエラーが発生します。

于 2008-11-11T20:14:47.633 に答える
0

これは単なる推測ですが、UAC である可能性があります。特権 (管理者) アプリケーションとユーザー アプリケーションは、互いにメッセージを送信したり、何らかの方法で通信したりできないことを知っています。サービスは管理者として実行されていますが、デスクトップは同じユーザーであるにもかかわらず、UAC の下で通常のユーザーとして実行されています。また、Office は起動時に自分自身の一部を起動 (プリロード) しており、それが通常のユーザーとして実行されていることも期待しています。

UAC をオフにしてみて、問題が解決するかどうかを確認してください。もしそうなら、少なくともあなたはそれが何であるかを知っています。

于 2008-11-11T16:31:52.543 に答える