1. ホーム
  2. asp.net

[解決済み] allowDefinition='MachineToApplication' として登録されたセクションをアプリケーションレベルを超えて使用するとエラーになる。

2022-02-01 15:46:22

質問事項

<ブロッククオート

allowDefinition='MachineToApplication' として登録されたセクションをアプリケーションレベルを超えて使用することはエラーとなります。

私の/portal/ディレクトリにあるすべてのaspxページの先頭行にこのエラーメッセージがあり、よくあるものだとわかっています。 このエラーメッセージをググってみると、IIS で /portal/ フォルダをアプリケーションとして構成するようにという投稿がたくさんあり(実際そうしています)、さらに web.config をネストしているという投稿もありました(しかしどの投稿も解決への指針を与えてはくれません)。

私の設定は、ルートディレクトリにweb.configがあり、/portal/ディレクトリに会社のポータルを作ろうとしているというものです。 /portal/ディレクトリは、それ自身の(必要な)web.configを持っています。

私のweb.configの50行目はこんな感じです。

    <customErrors mode="Off" defaultRedirect="customerrorpage.aspx"/>
    <anonymousIdentification enabled="true"/>
    <authentication mode="Forms"/>
    <membership defaultProvider="MyProvider">

domain.com/web.config と domain.com/portal/web.config があるため、私の domain.com/portal/default.aspx ページはロードされません。

これに対する本当の解決策は何でしょうか? 私はどうにかして私のルートweb.configと私の/portal/ディレクトリweb.configをマージする方法を見つけるか、私はここでベースから外れているのですか?

何かご指導いただければ幸いです。

解決方法は?

ASP.NETウェブサイトの設定情報は、1つまたは複数のWeb.configファイルで定義されます。構成設定は、階層的な方法で適用されます。Webサーバー上のすべてのWebサイトの基本的な構成情報を記述した「グローバル」Web.configファイルがあり、このファイルは %WINDIR%\Microsoft.Net\Framework\version\CONFIG フォルダーに格納されます。また、WebサイトのルートフォルダーにもWeb.configファイルを置くことができます。このWeb.configファイルは、「グローバル」Web.configファイルで定義された設定を上書きしたり、新しい設定を追加したりすることができます。さらに、Web サイトのサブフォルダーにも Web.config ファイルがあり、新しい設定を定義したり、上位の階層の Web.config ファイルで定義された設定を上書きしたりすることができます。

Web.config の一部の構成要素は、アプリケーション レベルを超えて定義することができません。つまり、「グローバル」な Web.config ファイルまたは Web サイトのルート フォルダにある Web.config ファイルで定義する必要があります。そのような場合は <authentication> 要素がその一例です。上記のエラーメッセージは、Webサイトのサブフォルダーの1つに、アプリケーションレベルを超えて定義できないこれらの構成要素のいずれかを持つWeb.configファイルがあることを示しています。

出典 http://scottonwriting.net/sowblog/archive/2010/02/17/163375.aspx

2つの可能なアプローチを正しく認識しました。

1 - 2つ目のweb.configの内容によりますが、もしあなたのセットアップが許すなら(つまり同じ認証方法なら)、次のコードを追加してください。 <authentication> の設定と、グローバルに定義する必要がある他の要素は、一番上の web.config に追加します。

2 - web.config の内容をマージできない場合、以下のリンクに含まれる手順に従って、サブフォルダを IIS の Web アプリケーションにすることができます。元のリンクは、もはや機能していません。(参照 アーカイブ ) お役に立てれば幸いです。