IIS で Web Site/Virtual Directory を作るときのチェックリスト

この日記を始めたときから,いつか書こうと思っていたIIS の設定ネタ.先日久しぶりにはまった(といっても数時間レベルだけど)ので,忘れないうちに書いておこうと思います.
こういうのって守秘義務とかが若干気になるところだけど,一般的なことしか書かないのでたぶん大丈夫なはず.それにそもそも開発用に構築しているサーバだしね(運用系のこととかセキュリティ上の留意点とかはご勘弁).


まずは前提,

  • OS: Windows2003 Server + .NET Framework 1.1
  • IISのバージョン: 6.0
  • Anonymous認証を利用

IIS Managerからウィザードにそって作成して,その後プロパティからカスタマイズしていくのが基本線.大抵問題ないはずですが,うまくいかないときは以下のことをチェックする.

  1. とあるディレクトリをWeb Site/Virtual Directoryにするときに,IIS_WPGグループのRead/Write権限がディレクトリについていることを確認する.デフォルトのInetpub/wwwrootの下であればデフォルトでくっついてくるが,それ以外だとついていないことがある
  2. アプリケーションプールのIdentity指定のユーザ(デフォルトだとNetwork Service)がIIS_WPGグループに入っているか?Network Serviceユーザは間違いなく入っているのですが,それとは別にドメインユーザを用意するとき,つい忘れがち
  3. Inetpub/wwwrootの下でデフォルトでくっついてくるユーザにはInternet Guest Account(IUSR_)もあるが,こちらについては特にread/write権限をつける必要ないかもしれない?(デフォルトでは付かない).偽装・委任モデルを使用していてうまくいかなかったら,気にしてみるとよいかもしれない.ちなみにAnonymous認証を利用してて,Internet Guest Accountとは別のユーザを指定しているなら,そのユーザも同様


こんなもんかな?(偽装・委任モデルについては若干自信なし)
ちなみにリモートサーバ上にあるSQLServerにアクセスしたい場合には,信頼されたサブシステムモデルを使用するなら,専用のドメインユーザを作成してアプリケーションプールのIdentityユーザをそのユーザで置き換え,SQLServerのログインをそのユーザで作成しておけばよいです.その他のリソースへのアクセス権の設定については,気が向いたらやります(めんどくさいんだな,これが)