2012-09-28 74 views
4

我不知道還有誰可以尋求幫助。Enterprise Library遷移 - 您必須配置容器以提供此值

在我的公司,我們正在遷移該系統。 2.0至3.5的淨

我們使用企業庫3.1,我們正在遷移到5.0

我使用配置文件

的編制是確定的,但該工具時,我跑,我收到此消息:

嘗試獲取類型的數據庫實例,重點「MrvFramework」

依賴FA的分辨率

激活出錯iled,type =「Microsoft.Practices.EnterpriseLibrary.Data.Database」,name =「MrvFramework」。 發生異常時:解析時。

異常是:InvalidOperationException - 無法構造數據庫類型。您必須配置容器以提供此值。

在異常時,容器是: 解決Microsoft.Practices.EnterpriseLibrary.Data.Database

我花了很多時間互聯網上:

我做了這個測試:

  • 所有DLL由企業庫需要在項目中引用
  • var database = DatabaseFactory.CreateDatabase(MrvFramework)
  • var database = EnterpriseLibraryContainer.Current.GetInstance<Database>(MrvFramework)
  • var database = new SqlDatabase(MrvFramework)

這是我的app.config(段代碼)

<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" /> 

<dataConfiguration defaultDatabase="MRVFramework"/> 
<connectionStrings> 
    <add name="MRVFramework" connectionString="Data Source=H:\MRV\Projetos\MRV Framework\Branch\Update SqlServerCe\MRV.Framework.Seguranca.Console\MRVFramework.sdf;Persist Security Info=True" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

這是我machine.config文件

<DbProviderFactories> 
    <add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    <add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    <add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> 
</DbProviderFactories> 

回答

0

我得到執行下面的代碼時出現同樣的異常;

Database db = DatabaseFactory.CreateDatabase();

解決異常有一次,我的代碼更新到

Database db = DatabaseFactory.CreateDatabase("Connection String"); // config file string 
1

這個代碼添加到你的web.config

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <qualifyAssembly partialName="Microsoft.Practices.EnterpriseLibrary.Data" fullName="Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
    </assemblyBinding> 
</runtime> 
相關問題