无法将类型为“Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings”的对象强制转换为“Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings”。

问题描述:

System.InvalidCastException was caught
  Message="Unable to cast object of type 'Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings' to type 'Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings'."
  Source="Microsoft.Practices.EnterpriseLibrary.Data"
  StackTrace:
       at Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSyntheticConfigSettings.<get_Databases>d__0.MoveNext() in e:\Builds\EntLib\Latest\Source\Blocks\Data\Src\Data\Configuration\DatabaseSyntheticConfigSettings.cs:line 88
       at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSyntheticConfigSettings.<DoGetRegistrations>d__10.MoveNext() in e:\Builds\EntLib\Latest\Source\Blocks\Data\Src\Data\Configuration\DatabaseSyntheticConfigSettings.cs:line 323
       at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
       at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSyntheticConfigSettings.GetRegistrations(IConfigurationSource configurationSource) in e:\Builds\EntLib\Latest\Source\Blocks\Data\Src\Data\Configuration\DatabaseSyntheticConfigSettings.cs:line 307
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.TypeLoadingLocator.<GetRegistrations>b__0(ITypeRegistrationsProvider p, IConfigurationSource cs) in e:\Builds\EntLib\Latest\Source\Blocks\Common\Src\Configuration\ContainerModel\TypeLoadingLocator.cs:line 67
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.TypeLoadingLocator.GetRegistrationsInternal(IConfigurationSource configurationSource, Func`3 registrationAccessor) in e:\Builds\EntLib\Latest\Source\Blocks\Common\Src\Configuration\ContainerModel\TypeLoadingLocator.cs:line 90
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.TypeLoadingLocator.GetRegistrations(IConfigurationSource configurationSource) in e:\Builds\EntLib\Latest\Source\Blocks\Common\Src\Configuration\ContainerModel\TypeLoadingLocator.cs:line 67
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.CompositeTypeRegistrationsProviderLocator.<GetRegistrations>b__0(ITypeRegistrationsProvider l, IConfigurationSource cs) in e:\Builds\EntLib\Latest\Source\Blocks\Common\Src\Configuration\ContainerModel\TypeRegistrationsProvider.cs:line 128
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.CompositeTypeRegistrationsProviderLocator.<>c__DisplayClass5.<GetRegistrationsInternal>b__4(ITypeRegistrationsProvider l) in e:\Builds\EntLib\Latest\Source\Blocks\Common\Src\Configuration\ContainerModel\TypeRegistrationsProvider.cs:line 147
       at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext()
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.Unity.UnityContainerConfigurator.RegisterAllCore(IConfigurationSource configurationSource, ITypeRegistrationsProvider rootProvider) in e:\Builds\EntLib\Latest\Source\Blocks\Common\Src\Configuration\ContainerModel\Unity\UnityContainerConfigurator.cs:line 61
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.ChangeTrackingContainerConfigurator.RegisterAll(IConfigurationSource configurationSource, ITypeRegistrationsProvider rootProvider) in e:\Builds\EntLib\Latest\Source\Blocks\Common\Src\Configuration\ContainerModel\ChangeTrackingContainerConfigurator.cs:line 66
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.ConfigureContainer(ITypeRegistrationsProvider locator, IContainerConfigurator configurator, IConfigurationSource configSource) in e:\Builds\EntLib\Latest\Source\Blocks\Common\Src\Configuration\EnterpriseLibraryContainer.cs:line 83
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.ConfigureContainer(IContainerConfigurator configurator, IConfigurationSource configSource) in e:\Builds\EntLib\Latest\Source\Blocks\Common\Src\Configuration\EnterpriseLibraryContainer.cs:line 62
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.CreateDefaultContainer(IConfigurationSource configurationSource) in e:\Builds\EntLib\Latest\Source\Blocks\Common\Src\Configuration\EnterpriseLibraryContainer.cs:line 122
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.ContainerBasedInstanceFactory`1..ctor(IConfigurationSource configurationSource) in e:\Builds\EntLib\Latest\Source\Blocks\Common\Src\Configuration\ContainerModel\ContainerBasedInstanceFactory.cs:line 48
       at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseProviderFactory..ctor(IConfigurationSource configurationSource) in e:\Builds\EntLib\Latest\Source\Blocks\Data\Src\Data\DatabaseProviderFactory.cs:line 45
       at VOSS.EntLibDataAccessLayer.ReadEntLibSettings() in D:\Intergration Code\Components\Common\EntLibDataBaseLayer.vb:line 195
       at VOSS.EntLibDataAccessLayer..ctor() in D:\Intergration Code\Components\Common\EntLibDataBaseLayer.vb:line 34
       at VOSS.Integrations.XmlRules.RetrieveRules() in D:\Intergration Code\Components\Integrations\BLL\XmlRules.vb:line 72













是否有任何一个经历过上述错误?

我无法理解。



你能帮忙吗?我?







Is any one experienced above error ?
I am not able to figure out.

Can you please help me ?

嗨朋友们,



这是因为存在两个版本的Enterprise Library在系统中。



说Enterprise Library 2.0和5.0。



一个解决方案配置为使用Enterprise图书馆2.0。

但是另一个被配置为使用5.0。

因此适当地出现。



如果任何解决方案的Webconfig中未提供该版本,则两者都将从GAC中获取,因此它将解决问题。



另一种解决方案:请访问..

http://entlib.codeplex.com/discussions/10384 [ ^ ]