私はVisual Studio 2013による単純なwebAPIビルドを持っています。VS13から実行するとうまくいきますが、プロジェクトをローカルIISにコピーすると次のようなエラーになります。
HTTPエラー500.19 - 内部サーバーエラーページの関連構成データが無効であるため、要求されたページにアクセスできません。
詳細なエラー情報:
モジュール IIS Web Core
通知 BeginRequest
ハンドラ 未定
エラーコード 0x80070021
設定エラー この設定セクションはこのパスでは使用できません。これは、セクションが親レベルでロックされているときに発生します。ロックは、デフォルト(overrideModeDefault = "Deny")、またはoverrideMode = "Deny"または従来のallowOverride = "false"のlocationタグによって明示的に設定されます。
設定ファイル \?\ C:\ inetpub\wwwroot\APITeslin\web.config
構成ソース:
36: <system.webServer>
37: <handlers>
38: <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
まったく同じエラーが発生し、この質問に来ました。 @SpaceBisonがコメントで述べたように、この答えは解決策を説明する - https://stackoverflow.com/a/12867753/404099 。私はそれを遅すぎて見つけたので、いくつかのステップを逃します。これは私のために働いたものです:
Windows Server 2012、IIS 8.5 。他のバージョンでも動作するはずです。
空のASP.NETアプリケーションでWCFサービスをホストしようとしたときにこのエラーが発生しました。全体の解決策は、Windows 8.1上で実行されているIIS 8.5上の.NET 4.5プラットフォームを使用することでした。やった
システムを再起動するように求められます。
これでHTTP 500.19が修正されるはずです。
編集11-FEB-2016 Windows 10 Proで問題が発生した、IIS 10、今回はHTTP 404.0でした。修正方法は同じです。Windowsの機能 - > .NET Framework 4.6 Advanced Services - > WCFサービス - > HTTP Activationの下にある[HTTP Activation]をオンにします。
私も同じ問題を抱えていましたが、IISとgoogleで何時間も猛威を振るった後です。解決策を見つけました。このエラーは、IIS applicationHost.config
で一部の設定が無効になっているためです。
解決するための手順は次のとおりです。
C:\Windows\System32\inetsrv\config\applicationHost.config
に移動してメモ帳で開きますに存在する次のキー値を変更します。
<section name="handlers" overrideModeDefault="Deny" />
この値を "Deny"から "Allow"に変更します
<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
この値を "Deny"から "Allow"に変更します
それは私のために働きました。
そのコンピュータでIISを初めて実行している場合は、ASP.NET IIS登録ツール(aspnet_regiis.exe)を実行してみてください。
手順は次のとおりです。net framework v4を使用している場合は、[管理者としてコマンドプロンプト]を開き、次のコマンドを使用してディレクトリを.net frameworkのベースフォルダに変更します。
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
を適切なフォルダ名に置き換えます。
お役に立てれば。
Windows 8.1、IIS 8.5では、解決策はコントロールパネルから4.5を登録することでした。
プログラムと機能> Windowsの機能の有効化または無効化>情報情報サービス> World Wide Webサービス>アプリケーション開発機能> ASP.NET 4.5の選択
OKをクリックしてください。
エラーが示すように - 「これは、セクションが親レベルでロックされている場合に発生します」。セクションのロックを解除するには、 appcmd.exe を使用して次のコマンドを実行します。
%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers -commitpath:apphost
セクションロックと親設定コンテキストが何であるかについての詳細は IIS documentation を参照してください。
私の場合、IIS URL Rewrite moduleのルールがありましたが、そのモジュールをインストールしていませんでした。含まれているがインストールされていないモジュールがある場合は、web.configを確認してください。
私たちの場合、私たちはかなりの数日間このエラーに苦しんでいました。コントロールパネルのプログラムで、Windowsの機能をオンまたはオフにします。
インターネットインフォメーションサービス、ワールドワイドウェブサービス、アプリケーション開発機能を選択し、そこで開発環境に関連する一連の機能をチェックします。たとえば、ASP.NET 4.6などです。 .NET Extensibility 4.6など.
できます!
次のように、サーバーレベルで関連するIIS(7.5)構成設定のロックを解除してみます。
Web.configにフォーム認証を使用していると記述されています - 実行中のWebサイトでは、[認証]メニューのIISでフォーム認証とdisableanonymous認証)を有効にしてください。 IISで。
私たちはAmazon Web Servicesを使用しているので、この問題を解決するためにスクリプトとプログラムを使用することを検討しています。だから私はコマンドラインツールを探していました。それで最初に私はランニングのトリックを試みました
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.
そして私はグーグルして、公式の マイクロソフトサポートページKB2736284 を見つけました。そのため、コマンドラインツールdism.exe
があります。だから私は以下を試してみました
dism /online /enable-feature /featurename:IIS-ASPNET45
しかしそれは文句を言って試してみるべきfeaturenameのリストを与えたので、私はそれらを一つずつ試してみて、私はそれぞれの後に私のWebAPIウェブページをテストしました。
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
Windows Server上の.NET Coreアプリ(私の場合はIIS 10)では、.NET Core Windows Server Hostingバンドル( link )をインストールした後に動作しました。
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の問題に出会うかもしれません。
私は削除されたanonymousAuthenticationで直しました。
Web設定IISにコメントするだけ
<security>
<!--
<authentication>
<anonymousAuthentication userName=""/>
</authentication>
-->
</security>
<staticContent />
行を削除し、web.configから削除してください。