私は、剃刀ビューエンジンを使用してASP.NET MVC 3インターネットアプリケーションを開発しています。アプリケーションは、同じサーバー上のSQL 2012データベースに格納されたサーバー側のセッション状態で、Win 2K8 R2、SP1のIIS7.5でホストされます。セッション状態は180分後にタイムアウトに設定されます。ASP.NET MVCアプリケーションは、アプリケーションプールのアイドルシャットダウン後に起動できません。
認証とメンバーシップは、リモートWebサービスにアクセスするカスタムプロバイダを使用して実装されます。
アプリケーションには、統合モードで動作する専用の.NET 4アプリケーションプールがあります。 「Temporary ASP.NET Files」ディレクトリにあるサイトのサブディレクトリが空の場合、アプリケーションは正しく起動します。デフォルトページへのルートが要求され、フォーム認証が開始され、ユーザーはログインページにリダイレクトされます。アプリケーションプールのアイドルシャットダウンした後
は、サイトにアクセスすると、通常は403または404エラーのいずれか一方と、失敗します。これまでに私が見つけた唯一のアクションは、サイトを再起動できるようにするために、「Temporary ASP.NET Files」のファイルを削除することです。
デフォルトでは、アプリケーションプールはApplicationPoolIdentityで実行されていました。icaclsを使用してアプリケーションプールユーザーに(appcmdを使用して見つかった)ウェブサイトルートと一時フォルダの両方へのフルアクセスを許可しました。 LocalSystem、LocalService、およびNetworkServiceのアカウントで実行するようにアプリケーションプールを変更しようとしましたが、これらのアカウントに両方のディレクトリへのフルアクセス権を与えました。
私はSYSTEM32であるapplicationHost.configを変更しようとしました\ inetsrvに\ CONFIGアプリケーションプールが常に実行されるよう、また無駄に。アイドル状態のアプリケーションプールをシャットダウンすると、最初の失敗までの時間が長くなります。
同じ症状が私のdevのマシン上で発生する(勝利8 & VS11を実行しているラップトップ、デスクトップランニングは7 & VS2010を獲得)IIS7の下で(表現していない)とき:それは、これらのマシンのいずれかで発生したとき、のApplication_Startにブレークポイントは、」doesnのヒットする。開発中に、.cshtmlファイルのいずれかを変更すると、失敗する可能性があります。私は、要求が失敗しているとき、何の試みは、ウェブルート内で有効な任意のファイルにアクセスするために行われていないことがわかりますプロセスモニタを使用して
は、試みが可能デフォルトの文書のデフォルトのリストにアクセスするために作られていませんでした。プロセスエクスプローラを使用
は、何も一時ファイルのロックの任意の並べ替えを持って表示されません。
ソリューションを提供する人はいますか?事前に
おかげで、 ポール。
私は元の投稿を作成した後、私が遭遇したことを調査しています:IoCとアセンブリ検出を使用してルートテーブルを構築しました。そのような良いアイデア:[IIS上のASP.NET MVC 3は、時間の後に403を提供する、アプリケーションプールの再起動が必要です](http://stackoverflow.com/questions/6204123/asp-net-mvc-3-on-iis-時間の経過後にアプリケーションのプール再起動が必要になる403)。 –