IIS 6 サーバーの既定のアプリケーション プールで正常に動作している ASP.Net MVC3 アプリケーションがあります。
独自のサービス アカウントで実行する必要があるため、新しいアプリケーション プールを作成し、そこにアプリケーションを移動しました。デフォルト設定では、アプリケーションは引き続き正常に動作しました。
アプリケーション プールにカスタム ID を設定しましたが、アプリケーションで "Directory Listing Denied" エラーが表示されます。
ID を Network Service に戻そうとしたところ、アプリケーションが再び動作し始めました。
アプリケーションがカスタム ID で実行できない原因は何ですか? ASP.Net が起動すらしていないようです。
アカウントを実行aspnet_regiis -ga <domain\username>
して IIS_WPG グループに追加したので、ID アカウントは ASP.Net にアクセスできるはずです。
より詳しい情報
Process Monitor で診断を行ったところ、aspnet_isapi.dll がカスタム ID で読み込まれていないことがわかりました。
ID が「Network Service」の場合、aspnet_isapi.dll がロードされ、その後に webengine4.dll がロードされていることがわかります。これは、NTLM 認証が発生した直後に発生します。
カスタム ID を使用すると、NTLM 認証が行われ、w3wp プロセスが既定のファイル (Default.aspx、Default.htm など) の検索を開始します。
確認したところ、アカウントは、これらの DLL が格納されているフレームワーク バージョンのフォルダーにアクセスできます。