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();

コードは正常にコンパイルされますが、実行時エラーがスローされます。

メソッドが見つかりません: 'Void 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:

Microsoft に連絡したところ、次のように言われました。

「Windows Azure キャッシングと Windows Azure 共有キャッシングは同じ API を共有しており、アセンブリ名は同じですが、アセンブリ自体は異なり、別の場所にあります。Caching NuGet パッケージは、Shared Caching アセンブリ参照を削除し、正しい Caching アセンブリ参照を追加します。Caching アセンブリは、C:\Program Files\Microsoft SDKs\Windows Azure.NET SDK\2012-10\ref\Caching フォルダーにあります。」</p>

結論:現時点では不可能です。

4

1 に答える 1

2

現時点では、新しい Azure キャッシュ .DLL (v2) は以前のバージョンと互換性がありません。1 つのバージョンを選択し、すべてのプロバイダーがそれに準拠していることを確認してください。明らかに、専用キャッシュには v2.0 の DataCache DLL が必要です。

于 2013-05-29T13:01:34.667 に答える