我刚刚通过 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 的旧构造函数不再允许安全令牌
现在我只有 2 个构造函数,看起来不可能指定身份验证密钥
编辑2:
我到了微软,他们告诉我:
“Windows Azure 缓存和 Windows Azure 共享缓存共享相同的 API,虽然程序集名称相同,但程序集本身是不同的,并且位于不同的位置。缓存 NuGet 包将删除共享缓存程序集引用并添加正确的缓存程序集引用。缓存程序集位于 C:\Program Files\Microsoft SDKs\Windows Azure.NET SDK\2012-10\ref\Caching 文件夹中。”</p>
结论:目前不可能。