2

web.configでサイトをすべて次のように設定しました:

<dataCacheClients>
    <dataCacheClient name="default">
      <hosts>
        <host name="mysite.cache.windows.net" cachePort="22233" />
      </hosts>

      <securityProperties mode="Message">
        <messageSecurity
          authorizationInfo="{key}">
        </messageSecurity>
      </securityProperties>
    </dataCacheClient>
  </dataCacheClients>

これを編集したいので、ラップトップで開発している間、実稼働キャッシュではなく、ラップトップのキャッシュにアクセスします。

これは、Google にとって (少なくとも私にとっては) 難しい問題です。なぜなら、"azure cache local" は Web ロールのキャッシュを考え出すからです。

4

2 に答える 2

4

Windows Azure 共有キャッシュを使用しているようで、開発時にローカル キャッシュを使用したいと考えています。

構成を変更するよりも、クラウドとローカルの間でキャッシュを切り替えることができるように、システムに抽象キャッシュ レイヤーを用意することをお勧めします。たとえば、 、 などICacheのいくつかのメソッドのようなインターフェイスを用意する場合。次に、ローカル開発用にインメモリ キャッシュを使用し、運用環境用に Azure Cache を使用するこのインターフェイスを実装したクラスをいくつか持つことができます。GetItemSetItem

https://github.com/ServiceStack/ServiceStack.Contrib/tree/master/srcを参照できるいくつかのキャッシュ実装をラップした GitHub に ServiceStack という名前のプロジェクトがあります。

または、新しいクラウド サービス キャッシングを使用できます。これは、クラウド サービス (Web ロールおよびワーカー ロール) と一緒に共同配置/専用キャッシュ クラスターを単独で提供します。ローカル エミュレーターを完全にサポートしているため、ローカル開発 (ローカル キャッシュ エミュレーターを使用) と運用の間でコードや構成を変更する必要はありません。

このクラウド サービス キャッシングの詳細については、https: //www.windowsazure.com/en-us/develop/net/how-to-guides/cache/ を参照してください。

于 2012-11-28T02:23:21.977 に答える
2

1つのオプションは、Web.config変換を使用して、デプロイメントごとに構成ファイルを変更することです。私はその専門家ではありませんが、おそらくグーグルでそれを理解することができます。

別のオプションは、コードでキャッシュを構成することです。その後、各環境の.cscfgファイルの設定を簡単に変更できます。コードでの構成の基本的なサンプルは次のとおりです。

DataCacheFactoryConfiguration cacheConfig = new DataCacheFactoryConfiguration();

//Insert the Authentication Token as shown below
cacheConfig.SecurityProperties = new DataCacheSecurity(config.AuthToken, config.UseSSL);

int cachePort = (cacheUseSSL ? 22243 : 22233);
cacheConfig.Servers = new DataCacheServerEndpoint[] { new DataCacheServerEndpoint(cacheHostName, cachePort) };
cacheConfig.RequestTimeout = TimeSpan.FromSeconds(1);
cacheConfig.ChannelOpenTimeout = TimeSpan.FromSeconds(45);
cacheConfig.MaxConnectionsToServer = config.MaxConnections;
cacheConfig.TransportProperties.ReceiveTimeout = TimeSpan.FromSeconds(30);
cacheConfig.TransportProperties.ChannelInitializationTimeout = TimeSpan.FromSeconds(10);

var cacheFactory = new DataCacheFactory(cacheConfig);
于 2012-11-28T00:08:59.437 に答える