web-dev-qa-db-ja.com

HTTPエラー503。単純なASP.NET 4.0 Webサイトではサービスを利用できません

ローカルのラップトップで奇妙なことが起こりました:ローカルで長く機能していた私のウェブサイトが立ち上げられません...

問題のローカライズを試みて、「index.html」ファイルのみで簡単なWebサイトを作成しました。 ASP.NET 2.0では正常に機能しますが、4.0を使用するようにアプリケーションプールを切り替えたとき、機能しなくなりました。

ブラウザでWebサイトを開くと、次のエラーが表示されます。

サービスは利用できません

Httpエラー503サービスを利用できません。

また、アプリプールの動作も停止します...「アプリケーション」セクションのシステムイベントログには次のようなものがあります。

ワーカープロセスは正しく初期化できなかったため、開始できませんでした。データはエラーです。

お知らせ下さい。 Googleに関連するものが見つかりません... :(

追伸VS2010、Windows Vista x64、最後の更新プログラムがインストールされていますが、VS SP1もインストールされています...

32
Budda

.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/"フォルダー内のファイルについて不平を言った理由...わかりました、今では言うのは難しいです。

4
Budda

Webサイト用に設定されたアプリケーションプールを開始する必要があり、何らかのエラーが発生すると自動的に停止しました。 (IIS (7.5 in my case)->Application Pools->Start stopped application pool.)

49
rafoo

IISで.Net 4拡張機能を有効にするのを忘れたようです。 ISAPIおよびCGIの制限で見つけて有効にしてみてください

http://blogs.msdn.com/b/rakkimk/archive/2007/08/17/iis7-where-is-the-web-services-extensions-option-which-was-there-in- iis6.aspx

コメントに基づいて、フレームワークの一部が削除された可能性があります。その場合、最初にクリーンアップしてFramework 4を再インストールするのが賢明かもしれません。プロセスのクリーンアップを自動化するツールへの参照を得たこのブログ投稿をお試しください http://blogs.msdn.com/b/astebner/archive/2008/08/28/8904493.aspx

3
Stanislav Ageev

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が例外を処理する方法を変更し([デバッグ]> [例外]で確認します)、処理されたかどうかに関係なくスローされたときに中断することができます。

2
John Leidegren

サイトのルートとして使用されるフォルダーのセキュリティ権限を確認することをお勧めします。このフォルダー内の_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だけで下線付きで置き換えます。

2
devstuff

この場合、ur IISでアプリケーションプールにアクセスすると思います。 Webサイトを実行しているアプリケーションプールを探します。停止していると確信しているので、再起動するだけで準備完了です。

1
Atul Chaudhary

Go to IISに変更し、WebアプリケーションのアプリケーションプールをDefaultAppPoolに変更します。

1
Ro.

私の唯一の問題はアプリケーションプールで、停止したアイコンが表示されていました。アプリケーションを別のAppPoolにポイントしましたが、正常に機能しています。それが役に立てば幸い。

1
Thyago Ponzoni

ネットワーク資格情報を更新する必要があり、IISの下でアプリケーションの「PhysicalPathCredential」を更新しませんでした。それは修正されました。

1
rakesh