Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 企业库异常:尝试获取ICacheManager类型的实例时发生激活错误,密钥?_C#_.net_Caching_Enterprise Library - Fatal编程技术网

C# 企业库异常:尝试获取ICacheManager类型的实例时发生激活错误,密钥?

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

使用.NET3.5和企业库5.0

从我的研究中,我发现了一个类似的问题: ***此解决方案无法解决我的问题

我似乎不明白,我的配置应该设置正确,但是否继续得到异常?有人有类似的问题吗

我建议在调用缓存管理器时添加缓存管理器和引用:

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