ASP.Netでアプリケーションのルートフォルダ以外でweb.configの値を再設定するとエラーが出る件
アプリケーションのルートフォルダ以外でweb.configの値を再設定すると
パーサー エラー メッセージ: アプリケーション レベルを超えて allowDefinition='MachineToApplication' として登録されているセクションを使うことはできません。
とか言うメッセージが表示される。これは以下の場所にあるmachine.configに要素がMachineToApplicationなどとして登録してあるため。MachineToApplicationに設定してあると、その要素の値はmachine.configとアプリケーションルートのweb.configでのみ設定が可能となるためサブディレクトリでその要素を上書きしようとするとエラーとなる。
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config
これを解消するには再設定しないようにするか、machine.configのallowDefinitionをEverywhereとするとよい。
追伸:
僕としてはひとつの仮想ディレクトリで複数のWebサイトを作成したいと考えていたのだが、結局これは実現できないようだ。DLLや実行ファイルははアプリケーションのルートディレクトリにあるBinフォルダに存在しないといけないという制約があるようだ。