MicrosoftEnterpriseLibraryのDataAccessApplication Block 4.1を使用しようとすると、展開で奇妙な問題が発生します。DAABを利用するWebアプリケーションの要素を使用しようとすると、次の未処理の例外が発生します。
Exception information:
Exception type: BuildFailedException
Exception message: The current build operation (build key Build Key[Microsoft.Practices.EnterpriseLibrary.Data.Database, DBNAME]) failed: The type initializer for 'Microsoft.Practices.EnterpriseLibrary.Data.Database' threw an exception. (Strategy type ConfiguredObjectStrategy, index 2)
私のweb.configには、connectionStringsに関する次のセクションがあります。
<connectionStrings configSource="data.config" />
また、data.configには、例外で参照されるDBNAMEのエントリが含まれています。
<?xml version="1.0"?>
<connectionStrings>`
<add name="dbname"
providerName="System.Data.SqlClient"
connectionString="[valid information here]" />
</connectionStrings>
データアクセスにDAABを使用していないアプリの部分は、問題なく同じ接続文字列を使用しているため、接続文字列が有効であることはわかっています。さらに、他の開発者のマシンだけでなく、私の開発マシンでも問題なく動作しています。これは本番サーバーへの展開時にのみ発生し、「リリース」ビルドはローカルマシンでも正常に実行されるため、そのバージョンに固有のものではありません。
おそらく本番サーバーの構成の問題だと思いますが、それが何であるかを理解できていません。Enterprise Libraryの展開に関するMSDNの記事には、アセンブリのxcopy展開が機能するはずであり、それらを/ binフォルダーに含めているため、そこからどこに進むべきかわからないと記載されています。何か案は?