2011-01-06 3 views
0

私は、Directory.ExistsとFile.Existsを使っていくつかのファイル検証を行うローカルのイントラネットアプリケーションを持っています。残念ながら、アプリケーションが "ApplicationPoolIdentity"として実行されており、そのアカウントにDirectory.ExistsとFile.ExistsがチェックしているUNCパスへのアクセス権がないため、チェックが失敗します。イントラネットアプリケーションのベストプラクティス? ApplicationPoolIdentityかどうか

私はそのApplicationPoolIdentityアカウントにこれらのディレクトリを読み取る権限を与える必要がありますか? (すべてのディレクトリは、単一のサーバーの最上位フォルダの下に表示されます)。

または、ドメインアカウントでアプリケーションプールを実行し、そのアカウントのアクセス許可を与える必要がありますか? (新しいアカウントを作成する必要がある場合は、どのような権限が必要ですか?)

ありがとうございます!

+0

なぜアプリは外部のディレクトリやファイルをチェックする必要がありますか? – yfeldblum

+0

このアプリケーションには、私たちのCAD部門がデータファイルをログに記録し、バージョン管理などで追跡するためのモジュールが含まれているので、入力したパスとファイル名が存在することを確認します。 – Shayne

+0

アップデートには時間がかかります。 :-) –

答えて

1

通常、私は通常、カスタムアカウントを作成しますが、共有などに追加の権利を付与する場合は、それが最良の選択肢だと言います。

共有に関連するアクセス権を持つカスタムIDを持つ新しいAppPoolを作成します。次に、この新しいAppPoolでアプリケーションを実行させます。そうすれば、このアクセス権を持たないAppPoolsの共有にアクセスする必要のない他のアプリケーションを使用することができます。

Windows 7またはWindows 2008 R2を使用している場合は、Virtual Accountsを参照してください。 IISアプリケーションプール\:ここ

では、次のアイデンティティのためのACLを読んで設定する必要がApplication Pool Identities

+0

私はそれを自分のアプリケーションプールの下で実行している。私はちょうど私がアカウントに与えるべきパーミッションについて確信していませんでした。また、セレクタには "ApplicationPoolIdentity"(推奨)と表示されていて、アイデンティティから変更するのが賢明かどうかはわかりませんでした。 – Shayne

0

のトピックに関する良い記事です。フォルダプロパティダイアログ(コンピュータがドメイン上にある場合は、[ユーザーまたはグループの選択]ダイアログでローカルコンピュータにLocationsが設定されていることを確認してください)またはコマンドラインからicaclsを使用してください。

関連する問題