2016年02月21日

DefaultAppPool で ファイルアクセスできないときのチェックポイント


WebApp でローカルファイルをアクセスしようとしたときに、「アクセスが拒否されました」等の理由でファイルがオープンできない場合があります。当然、フォルダ等のアクセス権の問題なので、ここから悪銭苦闘が始まります。ワーカプロセスの権限を変えるとアクセスできたりするのですが、Administrator に近い権限を与えるのは危険です。そこで、次の項目をチェックするといいでしょう。

  • ワーカプロセスを起動するIDには、ApplicationPoolIdentity, NetworkService, LocalService, LocalSystem とありますが、なるべく ApplicationPoolIdentity や、NetworkService あたりで動かすとよいと思います。

  • ローカルフォルダにアクセス件を与えます。ファイルのセキュリティタブで、IIS AppPool\DefaultAppPool 等で、読み取り専用の権限を与えます。特定の AppPool を作成した場合には、IIS AppPool\(特定のプール名)を使うと、そのサイトにだけ権限を与えることができます。

  • WebApp のプログラム側では、ファイルは ReadOnly でオープンします。何も指定しないと、ReadWrite オープンを指定されたと思って、アクセス拒否されることがあります。(よくあるミスです。)

  • WebApp でローカルファイルへの書き込みはあきらめましょう。実験したところ、LocalSystem 権限など Administrator 相当でしか、ファイル書き込みはできませんでした。書き込みが必要な場合には、DBの利用を考えた方がいいでしょう。


なぜか、アクセスが拒否される場合は、上記の中でも、ファイルをオープンする際に、ReadOnly にし忘れているか確認してみるといいと思います。


posted by 開発G at 18:49| Comment(0) | TrackBack(0) | ASP.NET
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/174151657

この記事へのトラックバック