C# 企业库异常:尝试获取ICacheManager类型的实例时发生激活错误,密钥?
使用.NET3.5和企业库5.0 从我的研究中,我发现了一个类似的问题: ***此解决方案无法解决我的问题 我似乎不明白,我的配置应该设置正确,但是否继续得到异常?有人有类似的问题吗 我建议在调用缓存管理器时添加缓存管理器和引用:C# 企业库异常:尝试获取ICacheManager类型的实例时发生激活错误,密钥?,c#,.net,caching,enterprise-library,C#,.net,Caching,Enterprise Library,使用.NET3.5和企业库5.0 从我的研究中,我发现了一个类似的问题: ***此解决方案无法解决我的问题 我似乎不明白,我的配置应该设置正确,但是否继续得到异常?有人有类似的问题吗 我建议在调用缓存管理器时添加缓存管理器和引用: using Microsoft.Practices.EnterpriseLibrary.Caching; using Microsoft.Practices.EnterpriseLibrary.Caching.Expirations; ..... .... ICach
using Microsoft.Practices.EnterpriseLibrary.Caching;
using Microsoft.Practices.EnterpriseLibrary.Caching.Expirations;
.....
....
ICacheManager cm = CacheFactory.GetCacheManager("TrackingCacheManager");
App.config:
<configuration>
<configSections>
<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" />
<section name="cachingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerSettings, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<cachingConfiguration defaultCacheManager="TrackingCacheManager">
<cacheManagers>
<add name="TrackingCacheManager" type="Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
expirationPollFrequencyInSeconds="120" maximumElementsInCacheBeforeScavenging="1000"
numberToRemoveWhenScavenging="10" backingStoreName="NullBackingStore" />
</cacheManagers>
<backingStores>
<add type="Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.NullBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="NullBackingStore" />
</backingStores>
</cachingConfiguration>
<dataConfiguration defaultDatabase="ConnectionString" />
<connectionStrings>
<add name="ConnectionString" connectionString="server=AFS7BCBRNGQ5O0\DEVELOPMENT;database=EITC_RTS;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
我的推荐人:
我猜您已经在App.config中为域项目设置了此配置。但是您的主项目有自己的配置文件,必须将此配置复制到该文件中 例如,如果您的主项目是一个webapp,那么它将有一个web.config。运行时不使用您添加到域项目的App.config中的缓存配置。正在使用的配置来自主项目的配置,在本例中是web.config
将你的缓存配置从域App.Config复制到主配置文件中,它就会工作。我犯了一个愚蠢的错误,但是在阅读了上面的内容后,理解了这个问题。这是我的
vb.net
代码,它给出了上述错误
Imports System.Collections
'Imports System.Configuration
Public Class DatabaseLogic
Public ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("db").ToString()
Public Function ServerDataMagic(StoredProcedure As String, PDMdata As Hashtable) As DataSet
Dim db As Database = DatabaseFactory.CreateDatabase(ConnectionString ) 'Here I am getting error.
Using cmd As DbCommand = db.GetStoredProcCommand(StoredProcedure)
Try
db.DiscoverParameters(cmd)
Catch discover_ex As Exception
End Try
在web.config中,条目是
<add name="db" connectionString="Database=Dbname;Server=SERVER;uid=sa;pwd=sa@1234" providerName="System.Data.SqlClient" />
我被发送给某人帮助。确保App.config中定义了完整的配置引用跟踪侦听器。有关详细信息,请检查此项-与日志记录相关的示例,我是否需要数据访问块的侦听器?您是否尝试过从配置中删除
PublicKeyToken
?您可能有具有不同令牌的DLL,当它们不匹配时,会出现异常。如果在调用GetCacheManager()时不指定缓存名称,是否会得到相同的结果?感谢您的帮助,这正是问题所在@查卡,你能赏金给我吗?
Dim db As Database = DatabaseFactory.CreateDatabase("db") 'Here I changed the config entry key