4

我刚刚通过 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();

代码编译正常,但会引发运行时错误:

找不到方法:'无效 Microsoft.ApplicationServer.Caching.DataCacheSecurity..ctor(System.Security.SecureString)'。

如果我采用此代码并将 dll 放入运行时版本 2,那么它就像一个冠军。

知道我应该改变什么才能让它工作吗?

编辑:

看起来 DataCacheSecurity 的旧构造函数不再允许安全令牌

http://msdn.microsoft.com/en-us/library/microsoft.applicationserver.caching.datacachesecurity.datacachesecurity(v=ws.10).aspx

现在我只有 2 个构造函数,看起来不可能指定身份验证密钥

编辑2:

我到了微软,他们告诉我:

“Windows Azure 缓存和 Windows Azure 共享缓存共享相同的 API,虽然程序集名称相同,但程序集本身是不同的,并且位于不同的位置。缓存 NuGet 包将删除共享缓存程序集引用并添加正确的缓存程序集引用。缓存程序集位于 C:\Program Files\Microsoft SDKs\Windows Azure.NET SDK\2012-10\ref\Caching 文件夹中。”</p>

结论:目前不可能。

4

1 回答 1

2

目前,新的 Azure 缓存 .DLL (v2) 与以前的版本不兼容。您将需要选择一个版本并确保您的所有提供商都遵守它。显然,专用缓存需要 v2.0 的 DataCache DLL。

于 2013-05-29T13:01:34.667 回答