"HTTP 500.19 - 内部サーバー エラー" エラー

元の製品バージョン: インターネット インフォメーション サービス 7.0 以降のバージョン
元の KB 番号: 942055

まとめ

この記事は、インターネット インフォメーション サービス (IIS) 7.0 以降のバージョンの Web アプリケーションで発生する "HTTP 500.19 - 内部サーバー エラー" の解決に役立ちます。 このエラーは、要求されたページの関連する構成データが無効であることを示します。 一般的な原因としては、構成ファイルの XML の形式が正しくない、構成セクションがロックされている、ファイルのアクセス許可が不十分、構成エントリが重複している、モジュールが見つからないなどがあります。

このエラーを解決するには、エラー メッセージで HRESULT コードを見つけて、一致するセクションを確認します。 ASP.NET Core アプリケーションについては、「 ASP.NET Core のホスティング バンドルがない」を参照してください。

HRESULT コード 0x8007000d

アプリケーション "<ApplicationName>" のサーバー エラー
HTTP エラー 500.19 - 内部サーバー エラー
HRESULT: 0x8007000d
HRESULT の説明
ページに関連する構成データが無効であるため、要求されたページにアクセスできません。

原因

ApplicationHost.configまたはWeb.config ファイルに、形式が正しくない XML 要素または認識されない XML 要素が含まれています。 IIS では、インストールされていないモジュール (IIS URL 書き換えモジュールなど) の XML 要素を識別できません。

ソリューション

以下のいずれかの方法を使用します。

  • 形式が正しくない XML 要素を ApplicationHost.config または Web.config ファイルから削除します。
  • 認識できない XML 要素を確認し、関連する IIS モジュールをインストールします。

HRESULT コード 0x80070021

アプリケーション "<ApplicationName>" のサーバー エラー
HTTP エラー 500.19 - 内部サーバー エラー
HRESULT: 0x80070021
HRESULT の説明
ページに関連する構成データが無効であるため、要求されたページにアクセスできません。

原因

IIS 構成ファイルの指定された部分は、より高い構成レベルでロックされます。

ソリューション

指定されたセクションのロックを解除するか、上位レベルで使用しないでください。 構成ロックの詳細については、「 IIS 7.0 構成でロックを使用する方法」を参照してください。

HRESULT コード 0x80070005

アプリケーション "<ApplicationName>" のサーバー エラー
HTTP エラー 500.19 - 内部サーバー エラー
HRESULT: 0x80070005
HRESULT の説明
ページに関連する構成データが無効であるため、要求されたページにアクセスできません。

原因

この問題は、次のいずれかに該当する場合に発生します。

  • この Web サイトでは、汎用名前付け規則 (UNC) パススルー認証を使用してリモート UNC 共有にアクセスします。
  • IIS_IUSRS グループには、 ApplicationHost.config ファイル、 Web.config ファイル、または IIS の仮想ディレクトリまたはアプリケーション ディレクトリに対する適切なアクセス許可がありません。

ソリューション

以下のいずれかの方法を使用します。

  • UNC パススルー認証を使用してリモート UNC 共有にアクセスするように Web サイトを構成しないでください。 代わりに、リモートの UNC 共有にアクセスするための適切なアクセス許可を持っているユーザー アカウントを指定します。

  • ApplicationHost.configまたはWeb.config ファイルのIIS_IUSRS グループに読み取りアクセス許可を付与します。

    1. Windows エクスプローラーで、Web サイトに関連付けられている ApplicationHost.config ファイルを含むフォルダーを探すか、Web サイトに関連付けられている Web.config ファイルを含む仮想ディレクトリまたはアプリケーション ディレクトリを見つけます。

      Web.config ファイルは、IIS の仮想ディレクトリまたはアプリケーション ディレクトリに存在しない可能性があります。 このような場合でも、次の手順に従います。

    2. ApplicationHost.config ファイルを含むフォルダーを右クリックするか、Web.config ファイルを含む可能性がある仮想ディレクトリまたはアプリケーション ディレクトリを右クリックします。

    3. [プロパティ] を選択します

    4. Security タブを選択し、Edit を選択します。

    5. 追加 を選択します。

    6. [ 選択するオブジェクト名を入力 してください] ボックスに「 <ComputerName>\IIS_IUSRS」と入力し、[ 名前の確認] を選択して、[ OK] を選択します

    7. [ 読み取り ] チェック ボックスをオンにし、[ OK] を選択します

    8. フォルダーの [プロパティ ] ダイアログで、[ OK] を選択します

      IIS_IUSRSがそれらのファイルのApplicationHost.configりアクセス許可を持つよう、フォルダーのプロパティがWeb.configファイルと ファイルによって継承されていることを確認します。

HRESULT コード 0x800700b7

アプリケーション "<ApplicationName>" のサーバー エラー
HTTP エラー 500.19 - 内部サーバー エラー
HRESULT: 0x800700b7
HRESULT の説明
ページに関連する構成データが無効であるため、要求されたページにアクセスできません。

原因

構成階層の上位レベル (親サイトまたはフォルダー内の ApplicationHost.config ファイルや Web.config ファイルなど) で、指定した構成セクション設定に重複するエントリが存在します。 エラー メッセージは、重複するエントリの場所を示しています。

ソリューション

指定した構成ファイルを調べて、その親 ApplicationHost.config または Web.config ファイルと比較して、重複するエントリを確認します。 重複するエントリを削除するか、エントリを一意にします。 たとえば、この問題は、 ApplicationHost.config ファイルに次のコードのエントリが重複しているために発生する可能性があります。

<add accessType="Allow" users="*" />

この問題を解決するには、承認規則の ApplicationHost.config ファイル内の重複するエントリを削除します。

  1. 管理者としてメモ帳を開きます。

  2. [ファイル] メニューの [開く] を選択し、[%windir%\System32\inetsrv\config\ApplicationHost.config] フィールドに「」と入力し、[開く] を選択します。

  3. ApplicationHost.config ファイルで、次のコードのような重複するエントリを削除します。

    <add accessType="Allow" users="*" />
    

HRESULT コード 0x8007007e

アプリケーション "<ApplicationName>" のサーバー エラー
HTTP エラー 500.19 - 内部サーバー エラー
HRESULT: 0x8007007e
HRESULT の説明
ページに関連する構成データが無効であるため、要求されたページにアクセスできません。

原因

ApplicationHost.configまたはWeb.config ファイルは、無効なモジュールまたは DLL または存在しない DLL を参照します。

ソリューション

ApplicationHost.configまたはWeb.config ファイルで、無効なモジュール参照または DLL 参照を見つけて、参照を削除します。 どのモジュール参照が正しくないかを判断するには、 失敗した要求トレースを有効にして、問題を再現します。

HRESULT コード 0x800700c1

アプリケーション "<ApplicationName>" のサーバー エラー
HTTP エラー 500.19 - 内部サーバー エラー
HRESULT: 0x800700c1
HRESULT の説明
ページに関連する構成データが無効であるため、要求されたページにアクセスできません。

原因

指定したモジュールのビット数は、アプリケーションをホストするアプリケーション プールとは異なります。 たとえば、32 ビット コンポーネントを 64 ビット アプリケーション プールに読み込もうとします。 この問題は、指定したモジュールが破損している場合にも発生する可能性があります。

解決策: モジュールとアプリケーション プールのビット数を一致させる

指定したモジュールのビット数がホスティング アプリケーション プールと一致していることを確認します。 また、モジュールが破損していないことを確認します。

HRESULT コード 0x8007010b

アプリケーション "<ApplicationName>" のサーバー エラー
HTTP エラー 500.19 - 内部サーバー エラー
HRESULT: 0x8007010b
HRESULT の説明
ページに関連する構成データが無効であるため、要求されたページにアクセスできません。

原因

指定されたコンテンツ ディレクトリにアクセスできません。

ソリューション

  • ファイル パスが存在することを確認します。
  • ファイル パスに正しい名前が付けられていることを確認します。
  • ファイル パスに正しいファイル レベルのアクセス許可が設定されていることを確認します。
  • ファイル パスが有効なファイル システムの種類を指していることを確認します。

ファイル パスが不明な場合は、 プロセス モニター または 失敗した要求トレース を使用して特定します。

HRESULT コード 0x8007052e

アプリケーション "<ApplicationName>" のサーバー エラー
HTTP エラー 500.19 - 内部サーバー エラー
HRESULT: 0x8007052e
HRESULT の説明
ページに関連する構成データが無効であるため、要求されたページにアクセスできません。

原因

IIS の既定のプロセス ID には、リモート共有で Web.config ファイルを開く十分なアクセス許可がありません。

ソリューション

この Web アプリケーションのアプリケーション プール ID アカウントに、 Web.config ファイルを開く十分なアクセス許可があることを確認します。

HRESULT コード 0x80070003

アプリケーション "<ApplicationName>" のサーバー エラー
HTTP エラー 500.19 - 内部サーバー エラー
HRESULT: 0x80070003
HRESULT の説明
構成ファイルを読み取れません。

原因

このエラーは、アクセス許可が不十分であるか、仮想ディレクトリのパスと一致しない物理パスによって発生します。 たとえば、Web アプリの物理ルート パスの下に Web.config ファイルは存在しません。

ソリューション

  • Web.config パスが存在し、正しいアクセス許可が設定されていることを確認します。
  • プロセス モニター ログを収集して、エラーに関する詳細情報を取得します。

ASP.NET Core のホスティング バンドルがありません

ASP.NET Core アプリケーションでこのエラーが発生した場合、アプリケーションがターゲットとする .NET バージョンの ASP.NET Core ホスティング バンドルはインストールされていない可能性があります。 正しいバージョンの .NET ホスティング バンドルをダウンロードしてインストールします。

Windows の更新中に構成ファイルの問題を防ぐ

一般的な安全対策として、更新プログラムをインストールする前にすべての構成ファイル (IIS だけでなく) をバックアップします。 仮想マシンを使用する場合は、更新する前にスナップショットを作成してください。 このガイダンスは、Windows 更新プログラムだけでなく、すべての更新プログラムに適用されます。