web-dev-qa-db-ja.com

httpエラー503サービスを利用できません。アプリケーションがWebサイトへのアクセスを停止する

これにはたくさんの投稿があり、私は今までにたくさんのことを試してみました。しかし無駄に。私自身Winforms開発者である私の会社がWebのイニシアチブを取っているので、基本的に、数日前にこのWebのものに取り組み始めました。

私はASP.Netプロジェクトを持っていて、それをローカルのIISでホストしたいのです。 Project properties -> Web設定で、私はUse Local IIS Serverを選び、localhost/MyAppとしてURLを与えました。私は私のFirefoxブラウザでそれにアクセスしようとしました、そしてHTTP Error 503. The service is unavailable.としてエラーを受け取りました

以前は他にもたくさんのエラーが出ました。しかし、これを打った。これらは私のプロジェクトにある設定です

  1. アプリケーションプールをASP.Net v4.0 Classicに設定
  2. アプリケーションプールのEnable 32 bit Applicationプロパティはtrueです
  3. アプリプールが起動されました
  4. ターゲットフレームワークのプロジェクトビルドプロパティをAny CPUに設定

しかし、私は奇妙な行動について言及したいと思います。以下は私が直面していることです

  1. アプリケーションプールが起動している
  2. 私は自分のローカルウェブサイトにアクセスしようとしています(localhost/MyAppとしてurlを与えることによって)
  3. HTTP Error 503. The service is unavailableとしてエラーを受け取ります
  4. アプリケーションプールが停止しています

私は 次のリンク を見ました、そして私はすでにそれを試みました。上記の動作のために私は ここ に達しました。このリンクによると、コンピュータ名に.を含めるべきではありません。コンピュータ名に.がありませんが、-があります。また、私のドメイン名には.が含まれています。その上私のオフィスのラップトップと私たちのTFS設定は私たちのドメインとコンピュータ名に結び付けられているので私はこれらの設定を変更することはできません。

誰が私が起こっていることを理解するのを手伝ってくれる?案内してください。ありがとう。

編集

Global.asaxに以下のコードがあります。同じファイル内でApplication_BeginRequestメソッドが空です。

protected override void Application_Start(object sender, EventArgs e)
{
    base.Application_Start(sender, e);
    String _path = String.Concat(System.AppDomain.CurrentDomain.RelativeSearchPath, ";",
                                         System.Environment.GetEnvironmentVariable("PATH"));
    System.Environment.SetEnvironmentVariable("PATH", _path, EnvironmentVariableTarget.Process);
    MyAppLog.Initialize();
    MyAppLog.WriteMessage("Application Started");
}

更新

コメントの提案に従って、私はCassiniからウェブサイトを運営することができます。

138
Sandy

考えられる理由の1つは、IISのアプリケーションプールが特定のカスタムアカウントで実行されるように設定されていて、このアカウントが存在しないか間違ったパスワードが指定されたか、パスワードが変更されたことです。 IISにあるアプリケーションプールの詳細プロパティを見てください。

また、イベントログには、最初の要求でアプリケーションプールがすぐに停止している理由に関する詳細情報が含まれている場合があります。

enter image description here

270
Darin Dimitrov

OK、私は1つの特定のケースのための別の解決策を持っています:あなたがWINDOWS 10を使っていて、あなたが最近(Anniversary Updateパッケージで)それを更新したなら、あなたは以下のステップに従う必要があります:

  1. Windows Event Viewerを確認します - Win + Rを押して、eventvwrname__と入力し、Enterキーを押します。
  2. Windows Event Viewerの左側にあるWindows Logs - > Applicationname__をクリックしてください。
  3. 今、あなたは中央のウィンドウでソースIIS-W3SVC-WPのためにいくつかのエラーを見つける必要があります。
  4. おそらくあなたは次のようなメッセージを見るでしょう:

モジュールDLL >> DLLへのパス<<の読み込みに失敗しました。データはエラーです。

  1. あなたはControl Panel - > Program and Featuresに行かなければなりません、そして、どのdllがロードできないかに依存して、あなたは別のモジュールを修理する必要があります:
    • rewrite.dllの場合IIS URL Rewrite Module 2を検索してChangename __-> Repairname__をクリックします。
    • aspnetcore.dllの場合Microsoft .NET Core 1.0.0 - VS 2015 Tooling ...を検索し、Changename __-> Repairname__をクリックします。
  2. コンピュータを再起動してください。
30
1_bug

私の状況では、アプリケーションプールはまだ古いパスワードを使用していますが、ログインパスワードが変更されました。アプリケーションプールの[詳細設定]をクリックして、[ID]をリセットするだけです。

14
David

私は同じ問題に直面していて、イベントログを使ってそれをデバッグしました。最初にそれは言った: "ソースMicrosoft - Windows - WASからのイベントID 5059の説明が見つかりません"。

その後、 Windows機能のオン/オフ を使用してWASをオンにしました。それから私はeventvwr "マイクロソフト - ウィンドウズ - DistributedCOMが見つかりません"でこれを見ました。

最後に、私はあきらめてApp Pool(Webサイトへのアクセスを止めるために使用されていたもの)を削除し、そのまま作成しました。これで問題は解決しました。

9
Tarun

Windows 10に来てAnniversary updateに更新した後は、このリンクをチェックしてください。

https://orcharddojo.net/blog/troubleshooting-iis-apppool-crashes-status-503-after-windows-10-anniversary-update

リンクがダウンした場合:イベントログに、aspnetcore.dll、rewrite.dll(ほとんどの場合は他の人も同様です)のロードに失敗したことを示している場合、見つからないアイテムを修復する必要があります。

これまでに経験した2つの具体的な問題とそれらを修正する方法がありますが、まったく異なるものにぶつかる可能性があります。

"C:\WINDOWS\system32\inetsrv\rewrite.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "IIS URL Rewrite Module 2".
"C:\WINDOWS\system32\inetsrv\aspnetcore.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "Microsoft .NET Core 1.0.0 - VS 2015 Tooling ...".
6
Zoran P.

ほとんどの場合、それはAppPool Settingが原因で発生しました。

これを解決するために次をチェックしてください

  1. Apppoolサービスが稼働していることを確認してください。
  2. AppPoolのIDを確認してください。
  3. そのID用に変更された場合は、新しいパスワードを入力してください。

次の画像は、IISのこれらの設定を示しています。

enter image description here

6
Hassan Nazeer

McAfee HIPSがあり、イベントビューアのアプリケーションログに次のエラーが表示された場合

モジュールDLL C:\ Windows\System32\inetsrv\HipIISEngineStub.dllを読み込めませんでした。
データはエラーです。

それから私の場合、次の問題が解決しました。 https://kc.McAfee.com/corporate/index?page=content&id=KB72677&actp=LIST

ページからの引用:

  1. 開始]をクリックして実行]をクリックして、エクスプローラと入力して[OK]をクリックします。
  2. 次の場所に移動します。%windir%\ system32\inetsrv\config
  3. メモ帳で編集するためにAdministratorとしてファイルapplicationHost.configを開きます。
  4. <globalModules>セクションを編集して、次の行を削除します。
    <add name = "MfeEngine" image = "%windir%\ System32\inetsrv\HipIISEngineStub.dll" />

  5. <modules>セクションを編集して、次の行を削除します。
    <add name = "MfeEngine" />

  6. ApplicationHost.configファイルの編集が終了したら、ファイルを保存し、iisresetを使用するかシステムを再起動してIISサーバーを再起動します。
5
Orhan Celik

初めてサービスを追加して、そのためのアプリプールを作成したとき。私はコマンドプロンプトから "iisreset"をした、そしてそれは働いた。

4
Swapnil Kale

私は同様の問題を抱えていました。 [ローカルセキュリティポリシー]> [ローカルポリシー]> [ユーザー権利の割り当て]の下の[バッチジョブとしてログオン]ポリシーにユーザーを追加して解決しました。

4
thd

私の場合、私はイベントログをチェックし、エラーがファイル '\\?\'、行番号 '0'から設定データを読み取ろうとしている '設定ファイルを読み取れませんでした'であることを見つけました。データフィールドにエラーコードが含まれています。

エラーコードは2307です。

C:\ inetpub\temp\appPools内のすべてのファイルを削除し、IISを再起動しました。それは問題を修正しました。

4

私はiis 8.5でも同じ問題を抱えていました。 Windowsログ - >アプリケーションの下のeventViewerを検索した後、私は "C:\ Windows\Microsoft.NET\Framework64\v4.0.30319にある.netフレームワークのmachine.configファイルに対するパーミッションエラーがあることに気づきました。\Config\machine.config "#:。それにIIS_IUSRSの許可を与えることで私の問題は解決しました(ファイルを右クリック - >プロパティ - >セキュリティ - >編集 - >追加 - > IIS_IUSRS)

3
Dror T

WebサイトをVisual Studioデバッガで実行できる場合は、コード内のどこでアプリケーションプールがクラッシュしているのかを確認できる可能性があります。私の場合は、関数が再帰的に無制限に呼び出されているため、スタックオーバーフローが発生しました。注:WindowsイベントログとIISログは、問題を診断するのに役立ちませんでした。

3
humbads

私はこのエラーを経験していました、そして、私のケースでは原因はしばらく前に私がユーザーパスワードを修正したということでした、そして503エラーは私がアプリケーションプールを再開するまで現れませんでした。

だから私はそれがアプリケーションプール/詳細設定/アイデンティティ/ [...] /設定... /パスワード/パスワードの確認で新しいパスワードを設定することを修正しました

3
Miquel

Orhanの回答からのリンク で概説されている手順に加えて、IIS Manager> Server Root> Modules> Configure Native Modulesに移動して、ネイティブモジュールを追加で削除する必要があります。 MfeEngineを選択してから削除を選択します。

2
dantheman

私は同様の問題を抱えていました、私のアプリプールはすべて、それらに対してWebリクエストが行われるたびに停止していました。イベントビューアで次のようなエラーが表示されました。

アプリケーションプール 'appPoolName'のワーカープロセスが、ファイル '\?\ C:\ inetpub\temp\apppools\appPoolName\appPoolName.config'から構成データを読み取ろうとしているときに、エラー '構成ファイルは整形式XMLではありません'を検出しました番号 '3'。データフィールドにエラーコードが含まれています。

これは私にapplication.configにエラーがあったことを私に言った:

C:\ Windows\System32\inetsrv\config\applicationHost.config

私のシナリオでは、デプロイ時にweb.configをIISという要素で明確に嫌いに編集しました。applicationHost.configはweb.configを削除し、この不適切な要素を挿入しました。

2
ShaneC

不足しているファイルがAnniversary Updateである場合、つまりcgi.dllが持っている場合、これらのEvent Viewerの問題に追加するために(Microsoftに感謝)

The Module DLL C:\WINDOWS\System32\inetsrv\cgi.dll failed to load.  The data is the error.

次に、これを修正します。

  1. IIS Managerに移動します
  2. Connectionsパネルの一番上の行を選択します(通常はPC名)
  3. 右側のパネルの一番下のManagementの下に、Web Platform Installerがあるはずです
  4. それがロードされたら、Productsを選択します
  5. cgiの検索タイプで、<Enter>を押します
  6. IIS: CGIを選択してから、右側のAddをクリックし、最後に下部のInstallをクリックします
  7. インストール後、PCを再起動する必要があり、修正する必要があります。
1
Serj Sagan

「マネージドパイプラインモード」を「クラシック」から「統合」に変更してもうまくいきました。アプリケーションプール - >基本設定で変更できます。

1
MartinS