1

ネットワーク サービスを IIS ID として使用し、Micorsoft Powerpoint Interop DLL を使用する ASP Web アプリケーションで問題が発生しました。

サーバーおよび開発マシンとして機能するWindows 7コンピューターがあります。

アプリケーションで LAN リソースにアクセスするには、このユーザーを使用する必要があります。

問題は、powerpoint 相互運用 dll を使用する場合 (Microsoft は Web アプリケーションにそれらを推奨していないことを読みましたが、現時点では、他のローカル アプリケーションで持っているコードを再利用する必要があることを読みました)、powerpoint ファイルを作成するメソッドがアイドル状態に見えることです。 Slide Shapes.AddPicture メソッドの呼び出しでアプリケーションをデバッグするとき。

このステートメントを削除すると、相互運用性はうまく機能し、ファイルが作成されますが、なぜ機能しないのかわかりません。

このフォーラムで説明されているように、DCOM サービス コンポーネントを構成しました。

http://social.technet.microsoft.com/Forums/en-US/w7itproappcompat/thread/dde69147-a01a-4eb1-8ea9-31adbf874bed/

これを行う:

  1. DCOMCNFG で、マイ コンピュータを右クリックし、プロパティを選択します。
  2. COM証券タブを選択します
  3. [アクセス許可] で、[デフォルトの編集] をクリックし、ネットワーク サービスを追加して、[ローカル アクセスを許可する] アクセス許可を付与します。\Users についても同じことを行います。
  4. 起動とアクティベーションのアクセス許可で、[デフォルトの編集] をクリックしてネットワーク サービスを追加し、「ローカル起動」と「ローカル アクティベーション」のアクセス許可を付与します。\Users についても同じことを行います

OKを押してください。

また、以下の指示に従いました。

Server 2008 での Windows サービスによる Office の自動化

「Ogawa Hack」の概要: システム プロファイル用のデスクトップ フォルダを C:\Windows\System32\config\systemprofile\Desktop として作成し、64 ビット マシンで実行している場合は、別のフォルダを作成します: C: \Windows\SysWOW64\config\systemprofile\Desktop また、フォルダには、Office を「操作」しているユーザーの書き込み権限が必要です。

要約すると、これはコード内の次のステートメントのアクセス許可の問題である必要があります。

Shape shape = slide.Shapes.AddPicture(fileName, MsoTriState.msoFalse, MsoTriState.msoTrue,
    pptBoxOffsetX,
    pptBoxOffsetY, 
    pptBoxShapeDimensionX,  
    pptBoxShapeDimensionY);

また、ファイル名パラメーターで使用されるフォルダーでフル コントロール (ネットワーク サービス ユーザーの読み取りおよび書き込みアクセス許可) を持っていますが、成功した結果はありません。IIS ID を Network Service ではなくローカル ユーザー名 (管理者アカウント) に変更すると、このステートメントが機能し、Web アプリケーションが必要なことを実行するため、これはアクセス許可の問題だと思います。したがって、ネットワーク サービス アカウントを IIS ID として使用して AddPicture メソッドを正常に呼び出すには、さらに何かを構成する必要があります。相互運用メソッドの slide.Shapes.AddShape が機能しているのに、AddPicture が機能していないのは奇妙です。どんな助けでも大歓迎です。前もって感謝します!!!

4

0 に答える 0