HTTPエラー500.19およびエラーコード:0x80070021


219

Visual Studio 2013でビルドした単純なwebAPIがあります。VS13から実行するとうまく機能しますが、ローカルIISでプロジェクトをコピーすると、次のエラーが発生します。

HTTPエラー500.19-内部サーバーエラーページの関連構成データが無効なため、要求されたページにアクセスできません。

詳細なエラー情報:

モジュール IIS Webコア

通知開始 リクエスト

ハンドラー 未定

エラーコード 0x80070021

構成エラー この構成セクションは、このパスでは使用できません。これは、セクションが親レベルでロックされている場合に発生します。ロックは、デフォルト(overrideModeDefault = "Deny")か、overrideMode = "Deny"または従来のallowOverride = "false"が指定された場所タグによって明示的に設定されます。

構成ファイル \?\ C:\ inetpub \ wwwroot \ APITeslin \ web.config

構成ソース:

36:   <system.webServer>  
37:     <handlers>  
38:       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />

IISではWindows認証が無効になっている可能性がありますが、アプリケーションのweb.configで必要です。
SpaceBison 2013年


@SpaceBison IIS8でウィンドウ認証を有効にするにはどうすればよいですか?
Umar Abbas

ここに私のwebconfigファイルのリンクがあります。 icopter.co.uk/Webconfig.txt
Umar Abbas

URL書き換えモジュールの使用を検討しましたか?

回答:


346

まったく同じエラーを得て、この質問に来ました。@SpaceBisonはコメントで述べたように、この答えは解決策を説明- https://stackoverflow.com/a/12867753/404099。気づくのが遅すぎて、いくつかのステップが抜けています。これは私のために働いたものです:

Windows Server 2012、IIS 8.5。他のバージョンでも動作するはずです。

  • サーバーマネージャーに移動し、[役割と機能の追加]をクリックします。
  • 役割セクションで次を選択します:Webサーバー
    • [セキュリティ]サブセクションですべてを選択します(ダイジェスト、IP制限、URL承認は使用していないため除外しました)
    • [アプリケーション開発]で、.NET Extensibility 4.5、ASP.NET 4.5、および両方のISAPIエントリを選択します
  • 機能セクションで、NET 3.5、.NET 4.5、ASP.NET 4.5を選択します。
  • Webサーバーセクションで、Webサーバー(すべて)、管理ツール(IIS管理コンソールおよび管理サービス)、Windows認証を選択します(いずれかを使用している場合)

13
追加しなければならなかったのは、AppDevセクションとFeaturesセクションの.NET 4.5アイテムだけでした。拡張性項目により、2つのISAPIエントリも強制されました。
Bill

これらの手順は問題を解決するのに役立ちます。ありがとう。
psulek 2014

最後に、私の病気を解決するためのソリューション。おかげで、それは理にかなっており、十分に簡単です。最近は常に機能や役割が欠けているようです...
Alexandru

ServerManagerはWindows7 Homeでは利用できません、それを修正するにはどうすればよいですか?
knocte 2015年

1
@knocte-Windows 7では、「プログラムのアンインストールまたは変更」を入力してから、「Windowsの機能をオンまたはオフにする」をクリックできます。これはサーバーマネージャーとは異なりますが、IISと関連機能をこの方法でインストールできます。
Ilia Barahovski、2015年

122

空のASP.NETアプリケーションでWCFサービスをホストしようとしたときにこのエラーが発生しました。ソリューション全体は、Windows 8.1で実行されているIIS 8.5の.NET 4.5プラットフォームを使用していました。落とし穴は

  1. 「Windowsの機能を有効または無効にする」を開きます

  2. ASP.NET 4.5 Advanced ServicesのWCFセクションに移動します

  3. HTTPアクティベーションを確認します。

  4. システムを再起動するように求められます。

    スクリーンショット

これでHTTP 500.19が修正されます。

EDIT 11-FEB-2016 Windows 10 Pro、IIS 10で問題が発生しました。今回は、HTTP 404.0でした。修正はまだ同じです。Windowsの[機能]-> [.NET Framework 4.6 Advanced Services]-> [WCFサービス]-> [HTTPアクティベーション]で[HTTPアクティベーション]をオンにします。


@dotnetguyありがとうございます!:-)それも私のために働いた。空のASP.NETアプリケーションでWeb API 2.2とMVCをホストしようとしたときにエラーが発生しました。
グルシンゲ2015

@dotnetguyこれは、IISをVisual StudioのローカルMVCアプリケーションで動作させることができなかった後、私を助けたものです。本当にありがとう。HTTPアクティベーションです。
シルクファイア2015

@silkfireそれが助けてくれてうれしい!
Sudhanshu Mishra 2015

@dotnetguyありがとう
Heemanshu Bhalla

@dotnetguy同じ正確な問題があり、これで解決しました!どうもありがとう!あなたは本当に.Netの人です!:D
Rian

47

私も同じ問題を抱えていましたが、IISとグーグルで何時間もブレーンストーミングを行った後です。私は解決策を見つけました。このエラーは、IISで一部の設定が無効になっているために発生しますapplicationHost.config

解決策は次のとおりです。

  1. 移動しC:\Windows\System32\inetsrv\config\applicationHost.configてメモ帳で開きます
  2. に存在する次のキー値を変更します

    • <section name="handlers" overrideModeDefault="Deny" /> この値を「拒否」から「許可」に変更します

    • <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> この値を「拒否」から「許可」に変更します

それは私のために働いた。


2
ありがとうございました。これらの手順を実行した後、次のエラーが表示されました。私はここで説明されているようにそれを解決することができます:stackoverflow.com/a/30594003/434742
Jenny O'Reilly

31

そのコンピューターで初めてIISを実行する場合は、ASP.NET IIS登録ツール(aspnet_regiis.exe)を実行してみてください。

方法は次のとおりです。.netフレームワークv4を使用している場合は、管理者としてコマンドプロンプトを開き、次を使用してディレクトリを.netフレームワークのベースフォルダーに変更します。

CD C:\Windows\Microsoft.NET\Framework\v4.0.30319

または、64ビットコンピュータを使用している場合は、次を使用します。

CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319

適切なディレクトリに正常に移動したら、次を使用してASP.NET IIS登録ツールを実行します。

aspnet_regiis -i

別の.NET Frameworkバージョンを使用している場合v4.0.30319は、適切なフォルダー名に置き換えてください。

お役に立てれば。


iisサーバー(仮想マシン)で2つの異なるVSプロジェクトを実行しようとしています。1つは機能しますが、1つは機能しません。2番目が機能しない理由は何ですか?
JosephDoggie、2014

7
私は過去にこの方法を使用しましたが、aspnet_regiisはWindows 8.1ではサポートされなくなりました。4.5を登録するには、[プログラムと機能]> [Windowsの機能を有効または無効にする]> [情報情報サービス]> [World Wide Webサービス]> [アプリケーション開発機能]> [ASP.NET 4.5]とその他必要なものを確認します。
masterwok

1
これは管理者として実行する必要があります(cmd.exeアイコンを右クリック->管理者として実行)。また、操作中にエラーを検出(およびログファイルを生成)できる場合でも、うまくいきました。
knocte 2015年

2
Windows 8.1(またはWindows Server 2012)上のIIS 8.5の場合、これは機能しません。次のプロンプトが表示されました:C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319> aspnet_regiis.exe -i ASP.NET(4.0.30319.33440)のインストールを開始します。このオプションは、このバージョンのオペレーティングシステムではサポートされていません。管理者は代わりに、[Windowsの機能のオン/オフ]ダイアログ、サーバーマネージャー管理ツール、またはdism.exeコマンドラインツールを使用して、IIS8でASP.NET 4.5をインストール/アンインストールする必要があります。
Sudhanshu Mishra 2015

ありがとう!! これは、IIS 10およびWindows 10で私の作品:)
ビクトル・ベルトラン

22

私は次のようにしてこれを解決しました:

WebServer(ISS)->WebServer->Application Development
add .NET Extensibility 3.5
add .NET Extensibility 4.5
add ASP.NET 4.5
add ISAPI Extensions
add ISAPI Filters

ここに画像の説明を入力してください


10

Windows 8.1、IIS 8.5での解決策は、コントロールパネルから4.5を登録することでした。

プログラムと機能> Windowsの機能を有効または無効にする>情報情報サービス>ワールドワイドウェブサービス>アプリケーション開発機能> ASP.NET 4.5を選択

OKをクリックします。


3
Windows 10では、「ASP」、「ASP.NET.35。」、「ASP.NET 4.6」の選択肢がありました。チェック4.6は私のために働いた。ありがとう!
PeterVermont 2016年

これが最も簡潔でわかりやすい答えだと思います。
テーマフィールド

4

エラーが示すように-「これはセクションが親レベルでロックされているときに発生します」。セクションのロックを解除するには、appcmd.exeを使用して次のコマンドを実行します。

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers -commitpath:apphost

セクションロックと親構成コンテキストの詳細については、IISのドキュメントを参照してください。


4

私たちの場合、このエラーにかなりの数日間苦労しました。コントロールパネルのプログラムで、Windowsの機能のオンとオフを切り替えます。

インターネットインフォメーションサービス、ワールドワイドウェブサービス、アプリケーション開発機能を選択し、そこで開発環境に関連する一連の機能を確認しました。例:ASP.NET 4.6。.NET Extensibility 4.6など

できます!


1
これで私の問題も修正されました。つまり、問題は最終的にIISをローカルマシンに追加した後、適切な機能を有効にできないことでした。これで解決しました。THnks。
jbooker 2018

3

次のように、サーバーレベルで関連するIIS(7.5)構成設定のロックを解除してください。

  1. IISマネージャーを開く
  2. [接続]ペインでサーバー選択します
  3. メインペインで構成エディターを開く
  4. [セクション]ドロップダウンで、ロックを解除するセクションを選択します(例:system.webServer> defaultPath)。
  5. 右側のペインで「属性のロック解除」をクリックします
  6. ロックを解除する必要がある他の設定についても繰り返します
  7. IISを再起動(オプション)-[Conncetions]ペインでサーバーを選択し、[Actions]ペインで[Restart]をクリックします

これはほとんど役に立ちますが、IIS 7ではsystem.webServerの下に「defaultPath」はありません
Djorge

つまり、Windows認証を更新しようとしている場合は、パスsystem.webServer-> Security-> Authenticationにあります。
2016

3

私の場合、IIS URL書き換えモジュールのルールがありましたが、そのモジュールをインストールしていませんでした。含まれているがインストールされていないモジュールがある場合は、web.configを確認する必要があります。


1
必要な他のすべてをインストールしただけで、まだ機能していません。次に、URL書き換えモジュールをインストールして、機能させました!ありがとう!
Vitox 2018

URL書き換えモジュールがない場合、エラーコードは0x80070021にはなりません。
Lex Li

3

Windows 10の場合は、管理者としてPowerShellを開き、次のコマンドを実行します。

dism /online /enable-feature /all /featurename:IIS-ASPNET45

1

あなたのweb.configは、フォーム認証を使用していると説明しています-IIS で実行されているWebサイトに対して、認証メニューでフォーム認証を有効にし、匿名認証を無効にしてください。


0

してください<staticContent />ラインとweb.configファイルからそれを消去します。


0

まあ、私たちはアマゾンウェブサービスを使用しているので、スクリプトとプログラムを使用してこの問題を解決しようと考えています。だから私はコマンドラインツールを探していました。だから私は最初に実行のトリックを試しました

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

しかし、私はクラウドベースのWindows Server 2012を実行しているので、それは不平を言いました

This option is not supported on this version of the operating system. Administrators should instead install/uninstall ASP.NET 4.5 with IIS8 using the "Turn Windows Features On/Off" dialog, the Server Manager management tool, or the dism.exe command line tool. For more details please see http://go.microsoft.com/fwlink/?LinkID=216771.

私はGoogleで検索し、公式のMicrosoftサポートページKB2736284を見つけました。したがって、コマンドラインツールがありますdism.exe。だから私は以下を試しました

dism /online /enable-feature /featurename:IIS-ASPNET45

しかし、不満があり、試してみる機能名のリストが表示されたので、1つずつ試してみて、WebAPI Webページを1つずつテストしました。

dism /online /enable-feature /featurename:IIS-ApplicationDevelopment
dism /online /enable-feature /featurename:IIS-ISAPIFilter 
dism /online /enable-feature /featurename:IIS-ISAPIExtensions 
dism /online /enable-feature /featurename:IIS-NetFxExtensibility45 

これで、WebAPIサイトを参照してAPI情報を確認できます。それは少数の人々を助けるはずです。[しかし、私はまだ完全に森の外にいるわけではなく、箱の外からウェブサイトにアクセスできません。まだ作業中です。]

また、私は他の人々の反応に続いていくつかの初期のステップを行いました。次の機能の委任を変更する必要があることを確認できます(ただし、これらの機能のコマンドラインツールを見つけたいと思います)。

In Feature delegation

Change 
'Handler Mappings' from Read Only to Read/Write

Change 
'Modules' from Read Only to Read/Write

Change 
'SSL Settings' from Read Only to Read/Write

-1

IISサーバーにURL書き換え機能がインストールされているかどうかを確認します。
インストールされていない場合は、web.configファイルにURL書き換え関連の構成がないことを確認してください

<!-- Make sure don't have below config, if server have not installed url rewrite feature. -->
<rewrite>
  <rules>
    <rule name="Fail bad requests">
      <match url=".*"/> ...

以前のサーバーから設定をコピーし、すぐに新しいサーバーにデプロイすると、このような500の問題が発生することがあります。


URL書き換えがない場合、エラーコードは0x80070021にはなりません。
Lex Li


-3

私にとってうまくいった解決策は、現在のWeb.configを削除して新しいものを追加することでした。それで問題は解決しました


6
新しいweb.configを作成するよりも、仕事を辞める方が簡単です。決してそうしようとしないでください。
Shadi Namrouti 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.