web-dev-qa-db-ja.com

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

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

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

詳細はここで見つけることができます シナリオ7 私のhexエラーコードと一致します。

上記のリンク先のサイトで与えられた解決策は、applicationHost.configファイルで、私のエラーで述べたセクションのoverrideModeDefaultに Allow を設定することです。私の場合、system.webServer Security の下にあります。しかし、サイトがすでに正しくデプロイされているローカルコンピューターのapplicationHost.configを見ると、そのセクションは Deny に設定されています。

この解決策が正しければ、私のローカルインスタンスは同じweb.configでどのように動作しますか?私のapplicationHost.configによると、そのセクションはロックされるべきですが、そうではありません。 applicationHost.configファイルは変更しないほうがいいでしょう。そのサーバーで実行されているサイトは他にもたくさんあるからです。別の解決策はありますか?

1571
Alex

私は同じ問題を抱えていました。 Web上で見つけた場所を覚えていないでください。

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

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

2970
chuck97224

IIS Manager を使用してこれらの設定を編集することもできます。

これの世話 学ぶIIS記事

IISのルートから 機能の委任 を使用する

Feature delegation icon in IIS Manager

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

Example use of Feature Delegation

320
Overflew

Windows Server 2012 および IIS 8 の場合、手順は同様です。

Web Server (IIS)Application Serverをインストールする必要があります。また、Application Serverの下にオプションのWeb Server (IIS) Supportも必要です。

Windows Server 2012 and IIS 8 Requirements for MVC

169
ken

“ C:\ Windows\System32\inetsrv\config”を参照してください(ここでは管理者権限が必要になります)。

:IISExpressおよびVisual Studio 2015では、applicationHost.configは$(solutionDir).vs\config\applicationhost.configに格納されています。 

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

overrideModeDefault属性をAllowに変更します

そのため、行全体は次のようになります。

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

ファイルを保存した後、ページは私のブラウザで問題なくロードされました。

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

130
Nime Cloud

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

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

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

62
Gregor Primar

For Win 10(おそらく他のウィンドウズ版でも動くでしょう)

1. "ウィンドウの機能の有効化または無効化"を開く。

enter image description here

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

enter image description here

32

この同じような問題に対する私の答えは ;

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

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

これら2つのコマンドを昇格したコマンドプロンプトから実行する必要がありました。

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

%windir%/system32/inetsrv/appcmd unlock config -section:windowsAuthentication
27
Benji

On Windows Server 2012 with IIS 8 ASP.NET 4.5 featureを有効にして解決しました

enter image description here

それから kenの答えに続いて

25
Kimi

最善の選択肢は、Application SettingsCustom Site Delegationから変更することです。
IISを開き、ルートからFeature Delegationを選択してからApplication Settingsを選択し、右側のサイドバーからRead/WriteStep #1 Step #2

18
Dr TJ

これは私にとってのトリックでした、IIS 8 Windows server 2012 R2用 

「機能を有効にする」に進んでください。

それからすべてのデフォルト設定、Next、Next、Nextなどに進みます。 

次に、以下のように選択します。 enter image description here

次にIISをリセットします(オプション)が、安全な方法はしてください。 

enter image description here

これは一般的な問題であるため、追加の解決策となります。乾杯!

14
Usman Younas

これを修正するには、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ページを更新します。

13
Rao Adnan

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
PBMe_HikeIt

私の場合は、サーバー上で.NET Framework Featuresの下で "HTTP Activation"が有効になっていないということでした。だからWindows Server 2012のために私のために働いた解決策は次のとおりでした。

サーバーマネージャ - >役割と機能の追加 - >機能 - >あなたが使いたいバージョンの.NET Frameworkの下で "HTTP Activation"がチェックされていることを確認

11
Pavel Nemec

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

  1. "Authentication - Windows" = "Read Only"とマークされたサーバー機能の委任
  2. このサイトには、明示的にWindows認証を参照するweb.configがありました。例えば。、 

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

site web.config IIS Manager - Server Feature Delegation

10
IronRod

機能を有効にする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
8
Chris S

私はこのNiceメッセージを受け取ったときサブフォルダの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
Stefan Michev

私の場合、それは他の何かでした。

新しいバージョンのVisual Studioにソリューションをロードしたとき、VSは明らかに新しいプロジェクト固有のapplicationhost.configファイルを作成しました。

MySolutionDir\.vs\config\applicationhost.config

既にカスタマイズされているグローバルIIS Express設定の代わりに、新しい設定の設定を使用し始めました。

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

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

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

私はこれをやっていた:

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;

言い換えれば、Webサイトのセクションを持つ(またはセクションを持つことができる)グローバルファイルC:\ Windows\System32\inetsrv\config\applicationHost.configではなく、Webサイトのweb.configを操作しようとしていました。変更しようとしていた設定は、applicationHost.configファイルにのみ存在します。

4
Mark R

エラーは、設定セクションが親レベルでロックされていることを示しています。したがって、問題を解決するのは直接1つの設定ファイルにはなりません。継承を見るには IISのファイル階層と継承をたどるには、以下のリンクをチェックしてください。

https://msdn.Microsoft.com/ja-jp/library/ms178685.aspx

だから、あなたは以下の順序でアプリの設定を確認する必要があります

  1. C:windows\system32\inetsrv\configにあるApplicationHost.config。 overrideModeDefault属性をAllowに変更します。
  2. Applicationsディレクトリの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の順序で慎重に実行してください。

3

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

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

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

その中で、権限を変更し、読み書きチェックボックスをチェックします。それがうまくいけばエラーなしで動作します。

3
user5891257

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>
2
Bhavesh

Windows Server 2008およびIIS 7の場合も、手順は同様です。 これを参照してください。 http://msdn.Microsoft.com/ja-jp/library/vstudio/bb763178(v=vs.100).aspx

役割サービスの追加では、「アプリケーション開発機能」が表示されます。

機能を確認(有効)してください。全部チェックしました。

2

私はoverride = "Allow"の値を入力していたという問題を抱えていました(既に述べたように)......しかしx64ビットシステムでは.......私の32のメモ帳++はそれらをファントム保存していました。メモ帳(x 64ビット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
granadaCoder

以下は私のために働いた:

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

Windows 7とVisual Studio 2013があります。

0
user3900346

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

セクションが削除されました:

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

私はこの問題を解決しました 

cmdに行き、aspnet_regiis -iを実行してください。

誰かに役立つことを願っています。

0
Dipal Kothari

レジストリに以下のキーを追加すると問題が解決しました:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ASP.NET_64\Performance

私がこれらのステップを試みたとき私はエラーを受け続けました:

  1. 「Windowsの機能の有効化または無効化」を検索してください。
  2. 「インターネットインフォメーションサービス」をチェックしてください。
  3. 「World Wide Webサービス」を確認してください。
  4. 「アプリケーション開発機能」を確認してください
  5. この下のすべてのアイテムを有効にする

それから私はイベントビューアを見て、このエラーを見ました:Unable to install counter strings because the SYSTEM\CurrentControlSet\Services\ASP.NET_64\Performance key could not be opened or accessed. The first DWORD in the Data section contains the Win32 error code.

問題を解決するために、次のレジストリエントリを手動で作成しました。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ASP.NET_64\Performance

そして次の手順に従った:

  1. 「Windowsの機能の有効化または無効化」を検索してください。
  2. 「インターネットインフォメーションサービス」をチェックしてください。
  3. 「World Wide Webサービス」を確認してください。
  4. 「アプリケーション開発機能」を確認してください
  5. この下のすべてのアイテムを有効にする
0
SharpCoder

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

0
LahiruD

私は同じ問題を抱えていました。 

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

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

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

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

0
Ankit Prajapati