Microsoft Enterprise Caching Block + сервер разработки ASP.NET показывает странную ссылку не найдена - PullRequest
0 голосов
/ 01 сентября 2011

Я работаю над проектом ASP.NET, и я начал получать эту действительно странную ошибку при просмотре страницы из Visual Studio. Ссылка, которую он ищет, представляет собой некоторую случайную строку, поэтому я предполагаю, что она находится в папке Temporary ASP.Net file.

Точная ошибка:

Невозможно найти сборку 'App_WebReferences.uphmdpcs, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = ноль'. Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.

Сведения об исключении: System.Runtime.Serialization.SerializationException: не удалось найти сборку 'App_WebReferences.uphmdpcs, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = ноль'.

Ошибка источника:

Строка 59: открытый статический объект GetD (строковый ключ) Строка 60: { Строка 61: CacheManager cache = CacheFactory.GetCacheManager («Менеджер кэша»); Строка 62: возврат кеша. GetData (ключ); Строка 63:}

Вот часть трассировки стека:

SerializationException: Unable to find assembly 'App_WebReferences.uphmdpcs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.]
   System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly() +1656829
   System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name) +1641477
   System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable) +120
   System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record) +400
   System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum) +62
   System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run() +144
   System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) +183
   System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) +190
   Microsoft.Practices.EnterpriseLibrary.Caching.SerializationUtility.ToObject(Byte[] serializedObject) +97

Я использую Enterprise Library 2007, .Net 2, VS 2005 (я тоже пробовал 2008), Windows Server 2003.

Я пытался предоставить щедрые разрешения для папки Temporary ASP.NET для «Все» в качестве крайней меры, но это не помогло. У кого-нибудь была такая ошибка? Я в тупике.

1 Ответ

0 голосов
/ 06 сентября 2011

Я не знаю наверняка, почему это происходит, но я обнаружил, что это связано с изолированным хранилищем, используемым блоком Caching. Может случиться так, что хранилище не очищено, так как наше приложение закрыто нечисто.

Временное исправление - удалить IsolatedStorage для приложения. Расположение:

c: \ Documents and Settings \ ИМЯ ВАШЕГО ПОЛЬЗОВАТЕЛЯ \ Локальные настройки \ Данные приложения \ IsolatedStorage \

Я удалил каталоги по этому пути, и это решило проблему. Мне приходилось делать это каждый раз, когда запуск не удался, что часто происходит в процессе разработки.

Да, ошибка, похоже, не связана с кешем, поскольку жалуется на отсутствие сборки, но она работает.

...