使用VS2012我从WebRole属性缓存选项卡添加了缓存功能。其中,它在web.config中生成以下XML:实现天蓝色同位缓存
<dataCacheClients>
<tracing sinkType="DiagnosticSink" traceLevel="Error" />
<dataCacheClient name="default">
<autoDiscover isEnabled="true" identifier="[cluster role name]"/>
<!-- <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" /> -->
</dataCacheClient>
</dataCacheClients>
好的,太好了。我用webrole的名称替换了[cluster role name],比如说“helloworld.web”。现在,当我创建DataCacheFactory或数据高速缓存对象:
_dataCacheFactory = new DataCacheFactory();
_defaultCache = _dataCacheFactory.GetDefaultCache();
//Or, just this line
_defaultCache = new DataCache(@"default");
我得到以下错误:
Microsoft.ApplicationServer.Caching.DataCacheException was unhandled
HelpLink=http://go.microsoft.com/fwlink/?LinkId=164049
HResult=-2146233088
Message=ErrorCode<ERRCA0021>:SubStatus<ES0001>:Server collection cannot be empty.
Source=Microsoft.ApplicationServer.Caching.Client
ErrorCode=21
SubStatus=-1
Some notes:
IDE: VS2012,
Framework: 4.0
AzureSDK: June2012
Local dev machine
我缺少什么?
编辑
我得到它的工作!
我在WebRole OnStart方法中创建DataCacheFactory,我将它移至Global.asax中的Application_Start,它似乎正在工作。
Sandrino解释了为什么是这样的话:https://stackoverflow.com/a/11886136/1374935
我想知道为什么,虽然,这里将是把初始化某些操作,如创建蔚蓝表的代码的最佳场所,创建缓存连接等为ASP.NET MVC应用程序。 – States 2012-08-09 14:39:21
请参阅:http://stackoverflow.com/a/11886136/1374935 – States 2012-08-09 14:59:47
我有完全相同的问题,但从MVC控制器启动缓存。我在Appplication_start中没有做任何事情。任何想法,这是一个类似的问题,我在启动失去了一些东西? – 2013-10-22 21:44:20