Используя VS2012, я добавил функцию кэширования на вкладке «Кэширование свойств WebRole». Среди прочего, он сгенерировал следующий XML в web.config:
Хорошо, отлично. Я заменил [имя роли кластера] на имя веб-роли, скажем, «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:SubStatus: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
Что мне не хватает?
Изменить
Я заставил его работать!
Я создавал DataCacheFactory в методе WebRole OnStart, я переместил его в Application _Start в Global.asax, и, похоже, он работает.
Сандрино объясняет, почему это так:https://stackoverflow.com/a/11886136/1374935