在尝试使用 Microsoft Enterprise Library 的 Data Access Application 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 configSource="data.config" />
并且 data.config 包含异常中引用的 DBNAME 条目:
<?xml version="1.0"?>
<connectionStrings>`
<add name="dbname"
providerName="System.Data.SqlClient"
connectionString="[valid information here]" />
</connectionStrings>
我知道连接字符串是有效的,因为应用程序中未使用 DAAB 进行数据访问的部分正在使用相同的连接字符串,没有任何问题。此外,在我的开发机器以及其他开发人员的机器上一切正常。这仅在部署到生产服务器时发生,甚至不特定于“发布”版本,因为该版本在我的本地机器上也可以正常运行。
我怀疑这可能是生产服务器的配置问题,但我无法弄清楚它可能是什么。关于部署企业库的 MSDN 文章提到程序集的 xcopy 部署应该可以工作,我将它们包含在 /bin 文件夹中,所以我不确定从那里去哪里。有任何想法吗?