Проблемы с работой кэширования на веб-сайтах Azure
Я пытаюсь заставить Caching работать на моем веб-сайте Windows Azure. Кэширование настроено на одной из моих рабочих ролей.
Я использовал эту статью, чтобы начать: http://www.windowsazure.com/en-us/develop/net/how-to-guides/cache/
Изначально у меня возникли проблемы с работой dll-клиента Azure Cache из-за отсутствующих ошибок сборки.
Could not load file or assembly 'Microsoft.WindowsAzure.ServiceRuntime, Version=1.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
Could not load file or assembly 'msshrtmi, Version=1.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
Хотя эта статья помогла мне решить эту проблему: http://www.thedailyparker.com/PermaLink,guid,0be6425e-b509-4122-af01-7086ce2f811e.aspx
Но затем я получаю исключение SEHException, которое звучит как проблема конфигурации. Хотя я понятия не имею, что мне не хватает. Детали исключения:
[SEHException (0x80004005): External component has thrown an exception.]
RdGetApplicationConfigurationSetting(UInt16* , UInt16** ) +0
RoleEnvironmentGetConfigurationSettingValueW(UInt16* pszName, UInt16* pszDest, UInt32 cchDest, UInt32* pcchRequiredDestSize) +47
Microsoft.WindowsAzure.ServiceRuntime.Internal.InteropRoleManager.GetConfigurationSetting(String name, String& ret) +91
Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetConfigurationSettingValue(String configurationSettingName) +54
Microsoft.ApplicationServer.Caching.AzureCommon.TopologyHelper.TryGetServiceConfigurationSetting(String value, String& result) +40
Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsUtility.GetDiagnosticLevel(String propertyName) +47
Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsUtility.GetClientLogLevel() +20
Microsoft.ApplicationServer.Caching.AzureClientHelper.RoleUtility.ReadClientLogLevel() +5
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +192
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +108
Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.Initialize(String clientName) +205
Microsoft.Web.DistributedCache.DataCacheFactoryWrapper.CreateDataCacheFactoryConfiguration(String dataCacheClientName) +77
Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider.CreateInternalProvider(IHttpRuntime httpRuntime, OutputCacheInitializationData initData, IDataCacheFactory dataCacheFactory, EventHandler`1 cacheFetching, EventHandler`1 cacheFetched) +28
Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider.GetInternalProvider() +148
Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider.Get(String key) +11
System.Web.Caching.OutputCache.Get(String key) +56
System.Web.Caching.OutputCacheModule.OnEnter(Object source, EventArgs eventArgs) +9717054
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
Я надеюсь, что кто-то может помочь мне в правильном направлении.
1 ответ
Вы не можете получить доступ к Windows Azure Caching с веб-сайта. Вы можете получить к нему доступ только из веб-роли или рабочей роли.
Вы пробовали Windows Azure Shared Caching на своем веб-сайте? Это должно работать (я не пробовал это сам на веб-сайте).