3

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 が格納されているフレームワーク バージョンのフォルダーにアクセスできます。

4

5 に答える 5

1

カスタムIDで指定しているユーザーに、アプリケーションのフォルダーレベルで明示的な読み取りまたは読み取り/書き込みを許可する必要があります。含まれているフォルダーを右クリックし、[プロパティ] をクリックして、アプリに必要なアクセス許可を持つユーザーをセキュリティ タブに追加します。

于 2012-12-13T19:10:38.510 に答える
1

理由はわかりませんが、aspnet.isapi.dll へのワイルドカード マッピングが必要でした。

カスタム ID がないと、アプリケーションはワイルドカード マッピングなしで正常に動作します。カスタム ID では、マッピングが必要です。別のサーバーでは、カスタム ID はマッピングなしで正常に機能します。変。

于 2012-12-17T22:25:50.007 に答える
0

ディレクトリ参照設定をすでに確認しましたか?

http://www.iis.net/configreference/system.webserver/directorybrowse

于 2012-12-17T10:58:05.293 に答える
0

デフォルトのユーザーとは別のユーザーを使用しているため、匿名認証がアプリ プール ユーザーを使用するように設定されていることを確認してください。@Gabe Thorns が言及したことに関連するものもある可能性があります。ワイルドカード マッピングの問題である可能性があります。asp プロセスを実行するようにワイルドカード マッピングが設定されていない場合は、asp プロセッサを回避してファイルを検索しようとします。

それが役立つことを願っています。

于 2012-12-17T19:16:23.637 に答える
0

アプリケーション フォルダーのアプリケーション プール ID にアクセス許可を明示的に付与しましたか?

アカウントは次のようになりますIIS AppPool\MyAppPoolName

ここに画像の説明を入力

詳細については、 http ://www.iis.net/learn/manage/configuring-security/application-pool-identities を参照してください。

于 2012-12-17T20:37:44.070 に答える