3

InstallShield 2012 Professional を使用して ASP.NET Web サイトをインストールし、ネットワーク サービス アカウントのセキュリティ コンテキストで実行されるカスタム アプリケーション プールをインストールします。Web サイトをテストすると、アクセス許可の問題 (ファイルのアクセス許可) が発生し、Web サイトが失敗して "エラー: アクセスが拒否されました" というメッセージが表示されます。

InstallShield を使用して、ユーザー「Authenticated Users」への読み取りアクセス権を各ファイルに設定しました。[アプリケーション データ] -> [ファイルとフォルダー] に移動して、InstallShield ISM ファイル内のアクセス許可を設定します。

  • 「宛先コンピューターのフォルダー」で各フォルダーを選択します
  • 「宛先コンピューターのフォルダー」内の各フォルダーを右クリックします。
  • コンテキストメニューの「プロパティ」を選択
  • 「権限」ボタンをクリック
  • ユーザー「Authenticated Users」の「Name(s):」セクションにエントリを追加し、ドメインは空白にします (「Read & Execute」、「List Folder Contents」、「Read」を選択します)。

...次に、このアクションをフォルダーごとに、次にファイルごとに何度も実行します。

テストすると、問題があることがわかります。サーバーにインストールされている実際のファイルに移動して確認すると、正しく表示されますが、正しく機能しません。実際、認証されたユーザーとして、私はフォルダー構造をナビゲートする権限を持っていませんが、私は管理者であるため、権限を微調整して入ることができます。これらの各ファイル(および関連フォルダー)でこれらの権限を手動でリセットすると、ウェブサイトが正しく機能します。これは、アプリ プールのセットアップ、ファイル コピー、およびネットワーク サービス アカウントがすべて正しく機能していることを意味し、問題は IIS がアクセスしようとしているファイルのアクセス許可に厳密に関連しています。

誰かがこの問題を抱えていて、それを克服しましたか? もしそうなら、どのように?(InstallScript を使用して権限を設定することは避けたいと思います。)

4

1 に答える 1

9

注:

[一般情報] 領域の設定、特に [ロックダウンされたアクセス許可] プロパティを考慮する場合、InstallShield のファイル レベルのアクセス許可設定の動作は異なります。「従来の Windows インストーラーの処理」を選択すると、明示的なアクセス許可を追加できませんでした。そうするときに、フォルダーに対する継承されたすべてのアクセス許可が消えてしまうことに気付きました。さらに、Windows でアクセス許可が設定されているように見えますが、設定されていないかのように動作します。手動操作テストでは、それらが正しく設定されていないことが示されます。

「Locked-Down Permissions」プロパティを「カスタム InstallShield 処理」に設定すると、権限を追加でき、継承された権限はすべてそのまま残りました。これで、「アプリケーション データ」->「ファイルとフォルダー」領域のルート インストール ディレクトリに目的のアクセス許可を適用できました。「カスタム InstallShield 処理」を選択したため、チェック ボックス「適用」を選択できます。これらの子オブジェクトへのアクセス許可」は、フォルダ プロパティのアクセス許可領域の詳細領域にあります。

問題を確定して修正する手順:

InstallShield (ISM ファイル) で...

  • 「一般情報」に移動します (左側のペイン)
  • ロックダウンされたアクセス許可を「カスタム InstallShield 処理」に設定します
  • 「アプリケーションデータ」に移動します
  • プログラムをインストールするルートフォルダを右クリック
  • 「プロパティ」をクリック
  • 「権限」ボタンをクリック
  • 「名前」というラベルの付いた白いボックス領域で画面の上半分を右クリックします
  • コンテキストメニュー項目「新規」を選択
  • このフィールドを空白のままにしてドメイン ユーザーを削除する
  • ユーザー「認証済みユーザー」を追加
  • 下部エリアのチェック ボックスをオンにします (「読み取りと実行」、「フォルダーの内容の一覧表示」、「読み取り」)
  • 「詳細設定」ボタンをクリック
  • 「これらのアクセス許可を子オブジェクトに適用する」チェックボックスをオンにします
  • 「OK」ボタンをクリック
  • 「OK」ボタンをクリック
  • 「OK」ボタンをクリック

インストール プログラムを再コンパイルしてインストールします。今すぐ動作します。

于 2012-11-19T20:32:25.147 に答える