http://blogs.wankuma.com/pandora/archive/2007/05/30/78818.aspx より
WebConfigurationManager クラスのリファレンスには次のようにある。
Web アプリケーション関連の構成ファイルを処理する場合は、WebConfigurationManager の使用をお勧めします。クライアント アプリケーションの場合は、ConfigurationManager を使用します。
Web アプリケーションの場合は WebConfigurationManager を使用した方が良い、というにはリファレンスから理解できるが、ConfigurationManager と WebConfigurationManager の違いは何なのだろうか? メソッドの数や名前に違いはあるが(※1)、AppSettings プロパティを使って値を取得する分には違いはないように思える。
WebConfigurationManager にあり、ConfigurationManager にない機能は「同期」及び「設定ファイルの階層化に対応」だと思われる。
Web アプリケーションはクライアントアプリケーションと違い、かなり多数のスレッドから同時にアクセスされる上に HTTP 処理パイプラインの「どこ」でアクセスされるかによって設定ファイルのインスタンスの状態が違うと思う。WebConfigurationManager はその辺を吸収してくれるのではないだろうか(多分)。
※1 ConfigurationManager には OpenExeConfiguration、WebConfigurationManager には GetWebApplicationSection など。