ローカルのラップトップで奇妙なことが起こりました:ローカルで長く機能していた私のウェブサイトが立ち上げられません...
問題のローカライズを試みて、「index.html」ファイルのみで簡単なWebサイトを作成しました。 ASP.NET 2.0では正常に機能しますが、4.0を使用するようにアプリケーションプールを切り替えたとき、機能しなくなりました。
ブラウザでWebサイトを開くと、次のエラーが表示されます。
サービスは利用できません
Httpエラー503サービスを利用できません。
また、アプリプールの動作も停止します...「アプリケーション」セクションのシステムイベントログには次のようなものがあります。
ワーカープロセスは正しく初期化できなかったため、開始できませんでした。データはエラーです。
お知らせ下さい。 Googleに関連するものが見つかりません... :(
追伸VS2010、Windows Vista x64、最後の更新プログラムがインストールされていますが、VS SP1もインストールされています...
.NET 64を再インストールしました-それが役立ちました。
追伸.
「C:/windows/Microsoft.net/Framework64/v4.0.30319/」フォルダー内のいくつかのファイルか、自分でそれらを削除したようです(VSが「ASP.NET Temporary files」のファイルについて不平を言うことがあり、その削除は役立ちます)。 ..おそらく、これらのフォルダーが一時的なものではないことに注意を払っていませんでした...
P.P.S.
この場合、VSが "C:/windows/Microsoft.net/Framework64/v4.0.30319/"フォルダー内のファイルについて不平を言った理由...わかりました、今では言うのは難しいです。
Webサイト用に設定されたアプリケーションプールを開始する必要があり、何らかのエラーが発生すると自動的に停止しました。 (IIS (7.5 in my case)->Application Pools->Start stopped application pool.)
IISで.Net 4拡張機能を有効にするのを忘れたようです。 ISAPIおよびCGIの制限で見つけて有効にしてみてください
コメントに基づいて、フレームワークの一部が削除された可能性があります。その場合、最初にクリーンアップしてFramework 4を再インストールするのが賢明かもしれません。プロセスのクリーンアップを自動化するツールへの参照を得たこのブログ投稿をお試しください http://blogs.msdn.com/b/astebner/archive/2008/08/28/8904493.aspx
ASP.NET 2.0と4.0の間には、アプリケーションの起動に関して微妙な変更があります。たとえば、ASP.NET 4.0のApplication_Startイベント中にHttpContextオブジェクトにアクセスすることはできません。このためにスローされる例外を隠す可能性のあるコードはありますか?
AppPoolが停止する可能性のある問題がいくつかあります。私が自分自身に遭遇したことの1つは、リクエストワーカースレッド以外のスレッドで未処理の例外が発生すると、AppPoolが最終的に停止することです。これは差し迫った問題ではありませんが、最終的には停止します。 ASP.NETランタイムは、アプリが失敗する頻度を追跡し、そのしきい値に違反すると、AppPoolが停止し、プールを共有しているアプリケーションを削除します。 StackOverflowExceptionまたはOutOfMemoryExceptionは、最終的には同じ効果を持ちますこれらは重大なエラーですであり、日常の運用コードでは発生しません。
ASP.NET 2.0と4.0の間の変更を確認し、未処理の例外を探します。また、Visual Studioが例外を処理する方法を変更し([デバッグ]> [例外]で確認します)、処理されたかどうかに関係なくスローされたときに中断することができます。
サイトのルートとして使用されるフォルダーのセキュリティ権限を確認することをお勧めします。このフォルダー内の_web.config
_を読み取れないため、ワーカープロセスの起動はおそらく失敗しています。
IISマネージャで新しいアプリケーションを作成する場合、デフォルトでは同じ名前の新しいアプリケーションプールが作成されます。問題は、このプールが_IIS APPPOOL\yourSiteName
_(アプリケーションプールページでは、これは一般的にApplicationPoolIdentity
としてリストされます)。
このIDはプールが作成されるまで存在しないため、フォルダーは現在読み取りアクセスを許可しておらず、ワーカープロセスはアクセス権がないため失敗します。
このIDを使用する場合は、サイトのコンテキストメニューの_Edit Permissions
_アイテムを使用して[セキュリティ]タブにアクセスし、フォルダーのSecurity
アイテムをエクスプローラーで直接編集するか、__(SOMECODE)などのツールを使用します__コマンドラインから(再現性のために推奨)。
プールのIDを_icacls.exe
_または特定のユーザーに変更することもできます。 _Network Service
_にはあまりにも多くの権限が付与されるため、_Local System
_の使用は強くお勧めしません。また、_Local Service
_には他の制限があります。
注:[セキュリティ]ダイアログでApplicationPoolIdentity
を追加する場合、[詳細/検索]オプションを使用すると_IIS APPPOOL
_アカウントは表示されません。 「_IIS APPPOOL\yourSiteName
_」文字列全体を手動で入力し、_Check Names
_ボタンをクリックして検証する必要があります-有効な場合、ダイアログはテキストをyourAppName
だけで下線付きで置き換えます。
この場合、ur IISでアプリケーションプールにアクセスすると思います。 Webサイトを実行しているアプリケーションプールを探します。停止していると確信しているので、再起動するだけで準備完了です。
Go to IISに変更し、WebアプリケーションのアプリケーションプールをDefaultAppPoolに変更します。
私の唯一の問題はアプリケーションプールで、停止したアイコンが表示されていました。アプリケーションを別のAppPoolにポイントしましたが、正常に機能しています。それが役に立てば幸い。
ネットワーク資格情報を更新する必要があり、IISの下でアプリケーションの「PhysicalPathCredential」を更新しませんでした。それは修正されました。