Причина для HRESULT 0X80131468 при доступе к IsolatedStorageBackingStore - PullRequest
4 голосов
/ 14 июля 2010

Сценарий, с которым я сталкиваюсь, заключается в том, что у меня есть веб-служба ASP.NET (.NET 3.5), работающая на сервере W2k3, который использует хранилище CacheManager / IsolatedStorage для хранения постоянной переменной состояния. Эта конфигурация работала нормально довольно долго, пока мы не изменили физическую машину. Теперь всякий раз, когда код, который обращается к этому значению, запускается, он генерирует исключение IsolatedStorageException (опубликовано ниже). Насколько я понимаю, доступ к хранилищу пользователей / сборок - это то, к чему осуществляется доступ, а исполняющий пользователь является членом группы локальных администраторов. У кого-нибудь есть предложение относительно того, что привилегия отсутствует?

Error

Невозможно создать каталог магазина. (Исключение из HRESULT: 0x80131468)

Трассировка стека

Тип: Microsoft.Practices.ObjectBuilder2.BuildFailedException. Ошибка: текущая операция сборки (ключ сборки [Build Key [Microsoft.Practices.EnterpriseLibrary.Caching.ICacheManager, Cache Manager]) завершилась неудачно: невозможно создать каталог хранилища. (Исключение из HRESULT: 0x80131468) (Тип стратегии ConfiguredObjectStrategy, индекс 2). След: в Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp (контекст IBuilderContext) в Microsoft.Practices.ObjectBuilder2.Builder.BuildUp (локатор IReadWriteLocator, время жизни ILifetimeContainer, политики IPolicyList, стратегии IStrategyChain, объект buildKey, объект существует) в Microsoft.Practices.ObjectBuilder2.Builder.BuildUp [TTypeToBuild] (локатор IReadWriteLocator, время жизни ILifetimeContainer, политики IPolicyList, стратегии IStrategyChain, объект buildKey, объект существует) в Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp [T] (локатор IReadWriteLocator, ILifetimeContainer продолжительный контейнер, IConfigurationSource configurationSource) в Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.LocatorNameTypeFactoryBase 1.CreateDefault() at Microsoft.Practices.EnterpriseLibrary.Caching.CacheFactory.GetCacheManager() at Ept.Commands.SettlementCommand.BeginSettlement() in c:\Projects\EPT\Ept.Framework.Services\Commands\SettlementCommand.cs:line 102 at Ept.Commands.SettlementCommand.ExecuteKernel(SettlementRequest request) in c:\Projects\EPT\Ept.Framework.Services\Commands\SettlementCommand.cs:line 188 at Ept.Command 2.Execute (запрос TRequest) в c: \ Projects \ EPT \ Ept.Framework.Services \ Commands \ Command.cs: line 79.ExjectOrate ExecutingStrategyIndex: 2 BuildKey: ключ сборки [Microsoft.Practices.EnterpriseLibrary.Caching.ICacheManager, Cache Manager] Тип: System.IO.IsolatedStorage.IsolatedStorageException. Ошибка: невозможно создать каталог магазина. (Исключение из HRESULT: 0x80131468). Трассировка: в System.IO.IsolatedStorage.IsolatedStorageFile.nGetRootDir (область действия IsolatedStorageScope) в System.IO.IsolatedStorage.IsolatedStorageFile.InitGlobalsNonRoamingUser (область действия IsolatedStorageScope) в System.IO.IsolatedStorage.IsolatedStorageFile.GetRootDir (область действия IsolatedStorageScope) в System.IO.IsolatedStorage.IsolatedStorageFile.GetGlobalFileIOPerm (область действия IsolatedStorageScope) в System.IO.IsolatedStorage.IsolatedStorageFile.Init (область действия IsolatedStorageScope) в System.IO.IsolatedStorage.IsolatedStorageFile.GetStore (область действия IsolatedStorageScope, тип domainEvidenceType, тип assemblyEvidenceType) в Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.IsolatedStorageBackingStore.Initialize () в Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.IsolatedStorageBackingStore..ctor (String storageAreaName, IStorageEncryptionProvider encryptionProvider) в Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.IsolatedStorageBackingStoreAssembler.Assemble (контекст IBuilderContext, объект CacheStorageDataConfiguration, IConfigurationSource configurationSource, ConfigurationReflectionCache отражениеCache) в Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.AssemblerBasedObjectFactory 2.Create(IBuilderContext context, TConfiguration objectConfiguration, IConfigurationSource configurationSource, ConfigurationReflectionCache reflectionCache) at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.AssemblerBasedCustomFactory 2.Create (контекст IBuilderContext, имя строки, IConfigurationSource configurationSource, ConfigurationReflectionCache отражениеCache)в Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerAssembler.Assemble (контекст IBuilderContext, CacheManagerDataBase objectConfiguration, IConfigurationSource configurationSource, ConfigurationReflectionCache отражениеCache) в Microsoft.Practices.EnterpriseLibjectObjectObBjectEbBject.EbBerject.EbBject.EbBject.BjectEbBB.Cф_произв., Имя строки, IConfigurationSource configurationSource, ConfigurationReflectionCache refleCache) в Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.AssemblerBasedCustomFactory`2.CreateObject (контекст IBuilderContext, имя строки.Configuration.ObjectBuilder.ConfiguredObjectStrategy.PreBuildUp (контекст IBuilderContext) в Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp (контекст IBuilderContext).

Ответы [ 4 ]

7 голосов
/ 14 июля 2010

Основной причиной проблемы является то, что для учетной записи, под которой работала веб-служба, не был создан локальный профиль пользователя, поэтому хранилище пользовательских сборок не существует.Простым решением было просто войти в ящик с учетной записью службы.

2 голосов
/ 29 февраля 2016

Если вы используете Windows 2012 R2 и IIS 8.5 , в случае, если ваше приложение работает в конкретном пуле приложений под своей собственной идентификацией , вам нужно проверить, что опция« Загрузить профиль пользователя » в Дополнительные параметры пула имеет значение True .Таким образом, Windows создаст папку с именем удостоверения пула приложений в C: \ Users и позволит вашему приложению писать в локальном хранилище.

1 голос
/ 05 июня 2012

У меня была эта проблема, но создание «C: \ Documents and Settings \ Пользователь по умолчанию \ Локальные настройки \ Application Data \ IsolatedStorage» не решило проблему, поскольку в какой-то момент произошло изменение имени профиля.Фактическое местоположение для этого сервера: «C: \ Documents and Settings \ Default User.WINDOWS \ Local Settings \ Application Data \ IsolatedStorage».

Если это не работает, я использовал Process Monitor с фильтром для «IsolatedStorage», чтобы найти правильный путь для ошибки «Отказано в доступе».

0 голосов
/ 04 октября 2017

Вкл. Windows 10 Настройка пула приложений IIS "Загрузить профиль пользователя" по умолчанию True .Но на Windows 2012 это False .Переход на True решил мою проблему.

...