使用DAAB 4.1在部署的项目上运行时出错

时间:2009-06-01 19:45:10

标签: asp.net exception daab

在尝试使用Microsoft Enterprise Library的数据访问应用程序块4.1时,我遇到了一个奇怪的问题。尝试使用使用DAAB的Web应用程序的元素时,我得到以下Unhandled Exception:

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文件夹中,所以我不知道从那里去哪里。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

嗯,添加引用时会发出警告。这至少是它在我的机器上的表现。因此,您的投诉没有坚实的基础。 :)

然而,异常消息完全不明确,所以感谢您的信息。

答案 1 :(得分:0)

终于弄明白了。 Enterprise Library 4.1需要Framework 3.5,尽管我们仍然针对我们的应用程序使用Framework 2.0,但是使用Visual Studio 2008在我们的开发机器上安装了3.5。但是,我们没有在我们的生产服务器上安装Framework 3.5这样做后问题就消失了。

令人费解的是,我明确地将2.0用于我的解决方案中的所有项目中的编译,包括依赖于企业库的项目,因此您认为引用需要3.5的程序集至少会在编译时产生警告。哦,好吧。