履歴 私の開発環境では、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 ノードをコメントアウトすると、エラーはなくなります。
- キャッシュ ワーカー ロールを専用ロールから共存ロールに切り替えると、エラーはなくなります。