我刚刚通过nuGet更新到最新的Azure dll(Id:Microsoft.WindowsAzure.Caching版本2.0.0.0,运行时版本v4)。这允许我为我的角色配置共享缓存。
问题是当我尝试以编程方式访问AppFabric Memcache时(另一个缓存,与会话无关)。
var servers = new List<DataCacheServerEndpoint>();
servers.Add(new DataCacheServerEndpoint(_hostname, _cacheport));
var conf = new DataCacheFactoryConfiguration();
conf.SecurityProperties = new DataCacheSecurity(secure(_authinfo));
var dataCacheFactory = new DataCacheFactory(conf);
_dataCache = dataCacheFactory.GetDefaultCache();
代码编译正常但会引发运行时错误:
找不到方法:'Void Microsoft.ApplicationServer.Caching.DataCacheSecurity..ctor(System.Security.SecureString)'。
如果我使用此代码并将dll放入运行时版本2就像冠军一样。
知道我应该改变什么才能让它发挥作用?
修改
看起来DataCacheSecurity的旧构造函数不再允许安全令牌
现在我只有2个构造函数,看起来无法指定身份验证密钥
EDIT2:
我到了微软,他们告诉我:
“Windows Azure缓存和Windows Azure共享缓存共享相同的API,虽然程序集名称相同,但程序集本身也不同,位于不同的位置。 Caching NuGet包将删除共享缓存程序集引用并添加正确的缓存程序集引用。缓存程序集位于C:\ Program Files \ Microsoft SDKs \ Windows Azure.NET SDK \ 2012-10 \ ref \ Caching文件夹中。“
结论:目前不可能。
答案 0 :(得分:2)
目前,新的Azure缓存.DLL(v2)与以前的版本不兼容。您需要选择一个版本,并确保所有提供商都遵守该版本。显然,Dedicated缓存需要v2.0的DataCache DLL。