顧客サーバーへのインストール時に ASP.NET Web アプリケーションを自動的にセットアップするユーティリティがあります。このユーティリティは、伝統的に、applicationHost.config 内の新しいアプリの場所のパスに多くの構成を追加します。これは、Microsoft.Web.Administration 構成クラスを使用してプログラムで行います。
これは IIS 7.0 と IIS 7.5 では問題なく動作しますが、IIS 8 (Server 2012) に同じ構成をインストールしようとすると、サーバー上でホストされているすべてのものに対して 500.19 サーバー エラーが発生し始めます。 . インストールするすべての構成を体系的に調べたところ、system.web/httpRuntime の maxRequestLength 属性のようです (以下を参照)。エラー自体が削除されるまでエラーが消えないため、system.web 構成要素自体が原因であると思われます。
system.web/httpRuntime のセクション定義で、どこでも許可されていることが確認されており、system.web 構成を他の構成レベル (web.config など) で問題なく設定できます。applicationHost.config で設定できないのはなぜですか?
<location path="Default Web Site/ManagementConsole">
<!-- ... more config ... -->
<system.web>
<httpRuntime maxRequestLength="10240" />
</system.web>
</location>
編集: 元の投稿の後で、500.19 エラーが参照したファイルが一時アプリ プール構成ファイル (C:\inetpub\temp\apppools\apppoolname\apppoolname.config) であることに気付きました。そのファイルの内容は次のとおりです。
<!-- ERROR: There's been an error reading or processing the applicationhost.config file. Line number: 905 Error message: The configuration section 'system.web' cannot be read because it is missing a section declaration
-->
しかし、applicationHost.config に移動して、system.web のセクション グループ定義と httpRuntime のセクション定義を追加すると、500.19 のメッセージが変わり、system.web/httpRuntime 定義が重複していると主張します。だから私はそれを定義することはできませんし、定義することもできません。何??