2

履歴 私の開発環境では、Windows Azure Emulator の実行中に再発するエラーと戦ってきました。Azure テンプレートに基づいて新しいソリューションとプロジェクトを作成し、2012 年 10 月の更新 SDK を再インストールする前に解決するには。次に、すべてのファイルを新しいプロジェクトにコピーする必要がありました。そのすべてを行う前に、それが機能することを知っているので、他にできることがないかどうかを確認したかったのです.

設定

  • ウィンドウズ8
  • Visual Studio 2012 Update 1
  • IIS エクスプレス 8
  • Windows Azure ツール - 2012 年 10 月
  • Windows Azure キャッシング 1.8.1.0
  • ASP.NET MVC 4.0 プロジェクト
  • Web ロール (2 インスタンス)
  • キャッシュ ワーカー ロール (2 インスタンス)
  • キャッシュ ワーク ロールでキャッシュが有効になっており、専用ロールに設定されている (ローカル ロールの状態は次のとおりです: UseDevelopmentStorage=true)
  • セッションは分散キャッシュを使用します
  • 出力キャッシュは分散キャッシュを使用

Web.config 設定

    <sessionState mode="Custom" customProvider="AFCacheSessionStateProvider" cookieName="abc_session">
          <providers>
            <add name="AFCacheSessionStateProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" applicationName="AFCacheSessionState" />
          </providers>
        </sessionState>

<outputCache defaultProvider="AFCacheOutputCacheProvider">
        <providers>
          <add name="AFCacheOutputCacheProvider" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" applicationName="AFCacheOutputCache" />
        </providers>
      </outputCache>
    </caching>

  <dataCacheClients>
    <dataCacheClient name="default">
      <autoDiscover isEnabled="true" identifier="AppNameCacheWorkerRole" />
    </dataCacheClient>
  </dataCacheClients>

エラーの詳細

ErrorCode<ERRCA0009>:SubStatus<ES0001>:Cache referred to does not exist
[DataCacheException: ErrorCode<ERRCA0009>:SubStatus<ES0001>:Cache referred to does not exist. Contact administrator or use the Cache administration tool to create a Cache.]
   Microsoft.ApplicationServer.Caching.DataCache.ThrowException(ErrStatus errStatus, Guid trackingId, Exception responseException, Byte[][] payload, EndpointID destination) +767
   Microsoft.ApplicationServer.Caching.DataCache.ThrowException(ResponseBody respBody, EndpointID destination) +149
   Microsoft.ApplicationServer.Caching.DataCacheFactory.EstablishConnection(IEnumerable`1 servers, RequestBody request, Func`3 sendMessageDelegate, DataCacheReadyRetryPolicy retryPolicy) +967
   Microsoft.ApplicationServer.Caching.<>c__DisplayClass4.<Initialize>b__1(RequestBody req) +198
   Microsoft.ApplicationServer.Caching.SocketClientProtocol.SendReceive(IVelocityRequestPacket request, Func`2 delegate, EndpointID& destination) +121
   Microsoft.ApplicationServer.Caching.SocketClientProtocol.Initialize(IEnumerable`1 servers) +1011
   Microsoft.ApplicationServer.Caching.DataCacheFactory.GetCache(String cacheName, CreateNewCacheDelegate cacheCreationDelegate, DataCacheInitializationViaCopyDelegate initializeDelegate) +1103
   Microsoft.ApplicationServer.Caching.DataCacheFactory.GetCache(String cacheName) +131
   Microsoft.Web.DistributedCache.DataCacheFactoryWrapper.CreateDataCacheFromFactory(DataCacheFactory factory, String cacheName) +63
   Microsoft.Web.DistributedCache.CacheHelpers.RunCacheCreationHooks(CacheConnectingEventArgs fetchingEventArgs, IDataCacheFactory dataCacheFactory, Object sender, EventHandler`1 fetchingHandler, EventHandler`1 fetchedHandler) +356
   Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider.CreateInternalProvider(IHttpRuntime httpRuntime, OutputCacheInitializationData initData, IDataCacheFactory dataCacheFactory, EventHandler`1 cacheFetching, EventHandler`1 cacheFetched) +399
   Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider.GetInternalProvider() +315
   Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider.Get(String key) +54
   System.Web.Caching.OutputCache.Get(String key) +80
   System.Web.Caching.OutputCacheModule.OnEnter(Object source, EventArgs eventArgs) +341
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165

その他の注意事項:

  • 同じ構成が Azure にデプロイされたときに正常に機能するため、私のローカル環境と関係があります。
  • Web ロール セットアップのインスタンスが複数あると、IIS Express がクラッシュしていました。解決するには、Visual Studio 2010 SP1 を実行することをお勧めします。1つのツール(SQLだと思われる)がインストールされたため、システムにVS2010がありました。SP1 をインストールすると、IIS Express がクラッシュする問題は解決しましたが、このエラーが再発しました。
  • 上記の OutputCache ノードをコメントアウトすると、エラーはなくなります。
  • キャッシュ ワーカー ロールを専用ロールから共存ロールに切り替えると、エラーはなくなります。
4

2 に答える 2

2

Microsoft のテクニカル サポートに問い合わせたところ、これは既知の問題のようです。ほとんどの場合、ブラウザを強制的に更新することで解決できます。私はさまざまな成功を収めてきました。この問題の修正は、次の Azure SDK リリースに含まれる予定です。

于 2013-02-12T14:20:28.677 に答える
0

これは、本番環境で私によく起こります!最初にパッケージをステージングにアップロードし、ステージング URL にアクセスする前にすべてのインスタンスが実行されるまで常に待機する必要があります。このエラーがまだ発生する場合があり、それを修正するためにすべてのインスタンスを再起動します。

于 2013-02-14T00:12:44.110 に答える