構成エラー:この構成セクションはこのパスでは使用できません


1780

サーバーへのサイトの展開中にエラーが発生しました。ホームページをロードするか、IISの新しいサイトで認証にアクセスしようとすると、次のエラーが表示されます。

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

詳細はここにあります。シナリオ7では、16進数のエラーコードと一致します。

上記のリンク先のサイトで提供されている解決策は、applicationHost.configファイルで、エラーに示されているセクションのoverrideModeDefaultにAllowを設定することです。私の場合、system.webServerのSecurityの下にあります。しかし、サイトが既に適切に展開されているローカルコンピューターのapplicationHost.configを見ると、そのセクションは次のように設定されています。 Denyにます。

このソリューションが正しい場合、私のローカルインスタンスは同じweb.configでどのようにうまく実行されますか?私のapplicationHost.configによると、そのセクションはロックされているはずですが、ロックされていません。そのサーバー上で実行されている他の多くのサイトがあるので、私はapplicationHost.configファイルを変更したくないと思います。別の解決策はありますか?


2
あなたはここに来た場合は、このエラーを得ているので、「動作保証ウェブ」プログラム(使用しようとするとcertifytheweb.comを)、その後、このブログの記事は、関連するかもしれない:renniestechblog.com/information/...
RenniePet

回答:


3332

私も同じ問題を抱えていました。ウェブ上のどこで見つけたのか覚えていませんが、これが私がしたことです:

  • 「スタートボタン」をクリック
  • 検索ボックスに「Windowsの機能を有効または無効にする」と入力します
  • 機能ウィンドウで、「インターネットインフォメーションサービス」をクリックします。
  • クリック:「World Wide Webサービス」
  • クリック:「アプリケーション開発機能」
  • 機能を確認(有効化)します。CGI以外はすべてチェックしました。

ところで、私はWindows 7を使用しています。


84
新しいWindows Server 2012を構築しましたが、Webサーバーにアプリケーション開発を追加するのを忘れていました。ここにはクラシックASPがないため、CGI、ASP、およびサーバー側インクルード以外はすべてチェックしました。
Chris

49
「アプリケーション開発機能」を確認しましたが、そのフォルダー内のどの機能も有効にするように実際に選択されていないことに後で気付きました。エラーを取り除くために、各機能(CGIを除く)を手動で選択しました。
Ciaran Gallagher 2013

30
Windows 8のIIS8でも確認済み。
Babak Naffas 2013年

74
IIS8.5 for Windows 8.1で確認済みです。
Mike P.

75
Windows 10(IIS 10.0 Build 10240)で確認済み
シックスワン

381

IISマネージャーを使用することもできますをこれらの設定を編集ます。

このIIS学習の記事の注意:

IISのルートからの機能の委任の使用:

IISマネージャーの機能委任アイコン

その後、マシンレベルの読み取り/書き込み権限をそれぞれ制御できます。そうしないと、overrideMode = "Deny"エラーが発生します。

機能の委任の使用例


16
これを続けるために、私にとってうまくいったことは次のとおりです(この解決策は本番システムではなく、私のDEVボックスにあることに注意してください):->委任でソート->すべての読み取り専用タイプを検索->それらを読み取り/書き込みに設定
アーロンリード

1
IIS7マネージャーで表示されていたエラーメッセージが修正されました。さらに驚くべきことに、WebサイトにアクセスしようとしたときにHTTP 500クライアントが受信していた問題も修正されました。
ブライアンギデオン

6
ここに掲載されている一見異なる2つのソリューションがあり、どちらも必要です。まず、「アプリケーションサーバー」と「ウェブサーバー」のサポート機能をインストールします。2つ目は、委任設定を確認し、問題のある設定を読み取り専用から読み取り/書き込みに変更します。注意することが重要:正しいサポート機能がインストールされていない限り、問題の構成は委任機能で利用できない場合があります。私の場合、「認証-匿名」が問題であり、アプリケーションサーバー機能をインストールするまで、この委任機能は表示されませんでした。
maplemale

1
これでうまくいきました。IIS 8.5では、Windowsサーバー2012 R2
ellickakudy rajeesh

1
私にとっての問題は、Windows 10のIIS 10の認証セクションにありました。このリンクが役に立ちました。knowledgebase.progress.com/articles/Article/...
Ajith

185

以下のためのWindows Server 2012のIIS 8、手順は同様です。

Web Server (IIS)そしてApplication Serverインストールする必要があり、そしてあなたは、オプションの持っている必要がありますWeb Server (IIS) Support下にApplication Server

MVCのWindows Server 2012およびIIS 8の要件


30
明確にするために、「Webサーバー(IIS)サポート」機能のチェックボックスは、上の写真の「アプリケーションサーバー」ノードの下にありません。いくつかの「次へ」を実行し、左側のナビゲーションバーにあるサーバーの役割と機能を渡して「役割サービス」にアクセスすると表示されます(上の写真には表示されませんが、いくつかの「次へ」の後に表示されます)。これは私を狂わせた:P
thedrs

2
私が最初にApplication Serverのルールは、[追加の役割を再起動し、ウィザード機能を追加した後、私のためのオプションが唯一の登場
wonster

145

「C:\ Windows \ System32 \ inetsrv \ config」に移動します(ここには管理者権限が必要です)applicationHost.configを開きます

:IISExpressおよびVisual Studio 2015では、applicationHost.configは次の場所に保存されます$(solutionDir).vs\config\applicationhost.config

エラーメッセージページの「構成ソース」の部分に表示されたセクションを見つけます。私にとってこれは通常「モジュール」または「ハンドラー」でした

overrideModeDefault属性を次のように変更しますAllow

したがって、行全体は次のようになります。

<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />

ファイルを保存した後、ブラウザでページが正常に読み込まれました。

警告: 64ビットWindowsでのapplicationHost.configの編集


2
64ビットのリンクは404ですが、有用な情報を回答に直接含めていません。
エリックフィリップス

1
これは、Windows 8.1開発環境でのipSecurityの+1でした。
モビーのスタントダブル

64ビットWindowsの場合、notepad.exeを実行して%SystemRoot%\ System32 \ inetsrv \ configを開き、ファイルの正しいコピーを取得する必要があります
Eddie Fletcher

Visual Studio 2017の「認証」セクション内でローカルにデバッグしているときに私に起こりました。ライフセーバー!
D Ie

69

ハンドラーのロックを解除する必要があります。これは、次のcmdコマンドを使用して実行できます。

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

IIS 8でこのエラーが発生している人のための別の情報かもしれませんが、私の場合はMicrosoft Server 2012プラットフォームでした。appcmdの実行後に発生した他のエラーとの戦いに数時間費やしました。最終的には、Webサーバーの役割を削除して再度インストールすることで修正できました。


これは私にとってもsystem.webServer / security / ipSecurityでも機能しました
Bart Calixto

3
ビンゴ。管理者として実行する必要がありました。
JackMorrissey 2014年

3
-section:system.webServer / modulesについてもこれを行う必要がありました。
マイク

1
私のために働きました-私は設定することを探して/section:access /sslFlags:SslNegotiateCertいました、そして私が-section:access 報告したものを使用する必要があることがわかりましたUnlocked section "system.webServer/security/access"...
ショーン・ワイルド

1
Windows Server 2012 R2で私のために働いた
Robben_Ford_Fan_boy 2016年

50

1.Windowsの機能をオンまたはオフにする」を開きます:WinKey + R => "optionalfeatures" => OK

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

  1. アプリケーション開発機能」でこれらの機能を有効にします

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

Win 10でテスト-しかし、おそらく他のバージョンのWindowsでも動作するでしょう。


2
完璧。ASP.NET 4.7ボックスをチェックするだけで、必要な他のすべての要件が自動的に選択されました。ウェブサイトを再起動することなく、魅力のように働きました。
ビル・ターベル

IISの初心者にとって、正しいバージョンのasp.netが実際にインストールされていることを確認することが最初のステップです。
mrfelis

1
優秀な仲間:D
ファビオシルバリマ

38

管理者特権のコマンドプロンプトから次の2つのコマンドを実行しました。

%windir%/system32/inetsrv/appcmd unlock config /section:anonymousAuthentication

%windir%/system32/inetsrv/appcmd unlock config /section:windowsAuthentication

これは質問に対する答えを提供しません。批評したり、著者に説明を求めたりするには、投稿の下にコメントを残します。自分の投稿にはいつでもコメントできます。十分な評判得られれ、どの投稿にもコメントできます。
2014年

19
@Rookこれは、サーバー上でアプリケーション開発機能を有効にすることを盲目的に促進しないため、これは完全に良い回答です。このエラーが発生する特定のシナリオに対する制御されたソリューションを示しています。それはもっといい言葉だったかもしれない。当時の新しい男の自信を後押しする良い仕事-彼はあなたとNAZIKがコミュニティーに参加する彼の最初の試みについて意見を述べた後に戻ってきたことはありません。
qujck 2015

1
これにより、Windows認証がアプリケーションレベルで構成されているアプリケーションの問題が修正されました。
nebffa 2016年

ニース、これはアプリケーション開発機能がしなかったトリックをしました
Stephen Holt

1
私にとってはうまくいきますが、なぜですか?
ケフマン2017

37

あたりとしてこの同様の問題に私の答え

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

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

1
このソリューションは私にとってはうまくいきましたが、本当の理由は異なりました-ASP.NET 4.5(Add-WindowsFeature Web-Asp-Net45)をインストールする必要がありました。
Der_Meister 2016年

26

のWindows Server 2012の持つIIS 8私は有効にすることによって、これを解決したASP.NET 4.5の機能を:

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

そしてケンの答えに従ってください。


2
PowerShell:Add-WindowsFeature Web-Asp-Net45
Der_Meister

26

最適なオプションはApplication SettingsCustom Site Delegation
[開く]から変更しIIS、ルートを選択Feature DelegationApplication Settingsてから、右サイドバーから[選択]を選択することです。Read/Write ステップ1 ステップ2


私のIISマネージャーには、これらの機能の多くはありません。Windowsの機能を使用して追加する必要があると思います。私はそれらすべてを選択しましたが(黒い四角のボックス)、それをクリックしてもオプションはどれも選択されていません!これをすべてのWindows OSで使用したことはありません。マイクロソフトに恥を知れ!たくさんの時間を無駄にしました。必要なすべてのWindows機能がチェックされていることを確認してください。黒い正方形の選択は使用しないでください
yardpenalty.com

3
または、サーバーにソフトウェアをインストールする際の「黒い四角」の意味を理解してください。
LarryBud 2018

1
手順2.1を追加できます->右側の[カスタムサイトの委任]をクリックし、上部のドロップダウンから上書きを許可するサイトを選択します。すべてのサイトではなく、必要なサイトのみを上書きすることをお勧めします。そして、ステップ3に進みます
foxont​​herock

26

これは、IIS 8 Windowsサーバー2012 R2のトリックでした

「機能を有効にする」に移動

次に、すべてのデフォルト設定、[次へ]、[次へ]、[次へ]などに移動します。

次に、以下のように選択し、 ここに画像の説明を入力してください

次にIIS(オプション)をリセットしますが、より安全な方法で行います。

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

これは一般的な問題であり、誰もが異なる問題を抱えているため、別の解決策です。乾杯!


1
これはWindowsサーバー2016でも機能します
M. Schena

1
これは私のために働きます
aronccs

Windows Server 2016で完璧に動作します!
D Todorov

17

これを修正するには、IIS Express applicationhost.configを開きます。このファイルは、C:\ Users [ユーザー名] \ Documents \ IISExpress \ config \ applicationhost.configに保存されています

VS2015 +の更新:構成ファイルの場所は$(solutionDir).vs \ config \ applicationhost.configです

次の行を探します

<section name="windowsAuthentication" overrideModeDefault="Deny" />
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
<add name="WindowsAuthenticationModule" lockItem="true" />
<add name="AnonymousAuthenticationModule" lockItem="true" />

これらの行を

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />

それを保存して、Asp.netページを更新します。


15

IIS 8の場合、サイトの認証を表示しようとするとエラーが発生することがわかりました。

  1. 「認証-Windows」としてマークされたサーバーの機能の委任=「読み取り専用」
  2. このサイトには、Windows認証を明示的に参照するweb.configがありました。例えば、

サイトの機能の委任に「認証-Windows」=「読み取り/書き込み」のマークを付けると、エラーは発生しなくなりました。「読み取り専用」とマークされた機能では、web.configが無効にしたとしても、それを参照することがまったく許可されていないようです。これは明らかに書き込みを構成しているためです。

サイトweb.config IISマネージャー-サーバー機能の委任


13

IIS ExpressとVS 2015では、$(solutionDir).vs \ config \ applicationhost.configにapplicationHost.configファイルのコピーがあるため、そこに変更を加える必要があります。このリンクを参照してください:http : //digitaldrummerj.me/iis-express-windows-authentication/

これらの行が以下のように変更されていることを確認してください:

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />

12

私の場合、それはサーバー上で.NET Framework機能の下で「HTTPアクティベーション」が有効になっていないことでした。Windows Server 2012の場合、私にとって有効なソリューションは次のとおりです。

サーバーマネージャー->役割と機能を追加->機能->使用するバージョンの.NET Frameworkで[HTTP Activation]がオンになっていることを確認します


Windows 7、8、10、2008サーバー、2012サーバーでは@Rayは機能しませんか?
Kiquenet 2016年

9

機能を有効にするPowershellの方法(Windows Server 2012 +)-必要に応じてトリミング:

Install-WindowsFeature NET-Framework-Core
Install-WindowsFeature Web-Server -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-Features -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-45-ASPNET -IncludeAllSubFeature
Install-WindowsFeature Application-Server -IncludeAllSubFeature
Install-WindowsFeature MSMQ -IncludeAllSubFeature
Install-WindowsFeature WAS -IncludeAllSubFeature

6

この素敵なメッセージを受け取ったとき、サブフォルダーのSSL設定を変更する必要がありました。私の場合、次の行動が私を助けました。

C:\ Windows \ System32 \ inetsrv \ config \ applicationHost.configを開きました

また、値をoverrideModeDefault = "Deny"から "Allow"に変更しました

<sectionGroup name="system.webServer">
 ...
    <sectionGroup name="security">
        <section name="access" overrideModeDefault="Allow" />
    </sectionGroup>

6

このエラーは、構成セクションが親レベルでロックされていることを示しています。したがって、問題を解決するのは直接1つの構成ファイルではなく、継承を確認するために構成ファイルの階層を通過する必要があります。IISでファイル階層と継承を通過するには、以下のリンクを確認してください

https://msdn.microsoft.com/en-us/library/ms178685.aspx

したがって、以下の順序でアプリの構成設定を確認する必要があります

  1. C:windows \ system32 \ inetsrv \ configのApplicationHost.config。overrideModeDefault属性をAllowに変更します。
  2. アプリケーションディレクトリのApplicationName.configまたはweb.config
  3. ルートディレクトリのWeb.config。
  4. 特定のWebサイトのWeb.config(この場所で問題が見つかりました)。
  5. ルートWebのWeb.config(サーバーの構成)
  6. マシンのmachine.config(ルートのweb.configおよびmachine.configは-systemroot \ MicrosoftNET \ Framework \ versionNumber \ CONFIG \ Machine.configにあります)

これらのすべての構成を1から6の順序で注意深く実行すると、それが見つかります。


4

私の場合、間違った構成ファイルを操作していたため、このエラーが発生しました。

私はこれをしていました:

Configuration config = serverManager.GetWebConfiguration(websiteName);
ConfigurationSection serverRuntimeSection = config.GetSection("system.webServer/serverRuntime");
serverRuntimeSection["alternateHostName"] = hostname;

正しいコードの代わりに:

Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection serverRuntimeSection = configApp.GetSection("system.webServer/serverRuntime", websiteName);
serverRuntimeSection["alternateHostName"] = hostname;

つまり、グローバルファイルC:\ Windows \ System32 \ inetsrv \ config \ applicationHost.configではなく、Webサイトのweb.configを操作しようとしていました。変更しようとした設定は、applicationHost.configファイルにのみ存在します。


4

私の場合、それは別のものでした。

新しいバージョンのVisual Studioにソリューションを読み込んだとき、VSは新しいプロジェクト固有のapplicationhost.configファイルを作成したようです。

MySolutionDir \ .vs \ config \ applicationhost.config

すでにカスタマイズされているグローバルIIS Express設定の代わりに、新しい構成の設定を使用し始めました。(\ Users \%USER%\ Documents \ IISExpress \ config \ applicationhost.config)

私の場合、これは設定が必要な設定でした。もちろんそれはあなたにとって他の何かかもしれません:

<section name="ipSecurity" overrideModeDefault="Allow" />

4

似た答えが1つあることに気付きましたが、私の場合、IIS構成エディターを使用して、「ロックを解除」したいセクションを見つけました。

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

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

次に、パスをコピーし、それを自動化で使用して、編集したいセクションを変更する前にロックを解除しました。

. "$($env:windir)\system32\inetsrv\appcmd" unlock config -section:system.webServer/security/authentication/windowsAuthentication
. "$($env:windir)\system32\inetsrv\appcmd" unlock config -section:system.webServer/security/authentication/anonymousAuthentication

3

Vista Home PremiumにIIS 7をインストールした後、この同じ問題を受け取りました。エラーを修正するために、Windows \ system32 \ inetsrvにあるapplicationHost.configファイルにある次の値を変更しました。

セクションにある次のすべての値を変更します->

<div mce_keep="true"><section name="handlers" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>
<div mce_keep="true"><section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>

3

あなたはこれを試すことができます:

拒否エラーが発生しているアプリケーションパスに移動し、右クリックします。

[プロパティ]-> [セキュリティ]タブ

その中で、権限を変更し、チェックボックスの読み取りと書き込みをオンにします。その後、うまくいけばエラーなしで動作します。



1

override = "Allow"値(ここで既に説明しました)を入れているときに問題が発生しましたが、x64ビットシステムでは......私の32ノートパッド++がファントムでそれらを保存していました。メモ帳(x64ビットO / Sの64ビットアプリケーション)に切り替えると、設定を保存できました。

見る :

http://dpotter.net/technical/2009/11/editing-applicationhostconfig-on-64-bit-windows/

関連テキスト:

私が実行している問題の1つでは、applicationHost.configを表示し、場合によっては編集する必要がありました。このファイルは、%SystemRoot%\ System32 \ inetsrv \ configにあります。とてもシンプルに思えます。コマンドラインから簡単に見つけることができましたが、お気に入りのエディター(Notepad ++)でロードしようとすると、ファイルが見つからないというエラーが発生しました。System32フォルダーが32ビットアプリケーション用にSysWOW64にリダイレクトされることがわかります。32ビットアプリを使用してSystem32フォルダーを表示する方法がないようです。図を行きます。さいわい、64ビットバージョンのWindowsには64ビットバージョンのメモ帳が付属しています。私がそれを嫌う限り、少なくともそれは機能します。


1

私の場合、閲覧に加えてIISで認証設定を更新しようとすると、このエラーが発生しました。web.config自体から認証設定を削除することで、このエラーを取り除くことができました。問題のある構成セクションを削除することは、サーバーの役割と機能を過度に変更するよりも、侵襲性が低く好ましい場合があります。

削除されたセクション:

    <security>
        <authentication>
            <windowsAuthentication enabled="true" />
        </authentication>
    </security>

0

同じ問題がありました。

  • Application Server機能を有効にすることで解決しました。その後、iisを再起動しました。

ハウツーアプリケーションサーバ機能を有効にしますか?Windows Server 2008 o 2012で?Windows 7、8、10?Powershellを使用していますか?
Kiquenet

0

これは私にとってはうまくいったIIS 8では、サーバーをIIS Expressに変更することでこの問題を解決できます。デバッグに移動->プロパティWebでドロップダウンからIIS Expressとしてサーバーを選択し、ソリューションを再構築します


0

アプリケーションレベル(Web.Config)で変更するには:

信頼レベルをweb.configから削除してください:

実際には、自分のサーバーを制御できないホスティングサーバーでWebサイトをホストしようとしたときに、このエラーが発生しました。アプリケーションのweb.configから上記の行を削除すると、問題が解決しました。


0

以下は私のために働きました:

プロジェクトのプロパティに移動します。Webタブ。ローカルIISに設定し、特定のページを設定します。

私はWindows 7とVisual Studio 2013を持っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.