【IISエラー500.19】「定義済みの ‘system.web.extensions/scripting/scriptResourceHandler’ セクションが重複しています」の対処法

IIS
この記事は約4分で読めます。

IISエラー500.19を解消させたい

エラー内容

定義済みの ‘system.web.extensions/scripting/scriptResourceHandler’ セクションが重複しています

原因

設定ファイル(.config)内に定義が重複していることが原因です。

<configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
            <!-- 2行名が↓に存在する -->
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
        </sectionGroup>
    </sectionGroup>
</configSections>

この例のように同じnameのセクションが複数存在しています。

しかし、同設定ファイル内とは限らないところが間違えやすいポイントです。
開発エディタ(Visual Studio等)上では実行できても、IISに発行フォルダを配置したらエラーが発生してしまう場合があります。
それは、IIS全体の設定ファイル(machine.config)が原因の可能性があります。

対処法

複数ある同nameセクションを1つ以外すべて削除する必要があります。

しかし、web.config内に複数定義されているセクションがない場合でも発生する場合があります。
その場合は、IISの「machine.config」も確認しましょう。

machine.configは実は複数あるため、IISに設置したWebサイトの環境を確認して該当するmachine.configを確認する必要があります。
ただし、還俗修正はmachine.configではなく、各Webサイトのweb.configにかけるほうが安全です。

【machine.configパス】
%SystemRoot%\Microsoft.NET\%Framework%\%VersionNumber%\CONFIG\machine.config

%Framework%

OS bit環境パス
32bitFramework
64bitFramework64

%VersionNumber%

.NET Frameworkバージョンパス
3.5v2.0.50727
4.0v4.0.30319