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>
わかりました。[クラスター ロール名] を Web ロールの名前に置き換えて、"helloworld.web" とします。ここで、DataCacheFactory または DataCache オブジェクトを作成すると、次のようになります。
_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