Что означает ошибка IsolatedStorage_Operation_ISFS, генерируемая конструктором IsolatedStorageFileStream? - PullRequest
4 голосов
/ 26 июля 2010

У меня есть приложение Silverlight 4 (plug ... http://audioorchard.com ... end plug), которое иногда вызывает исключение в конструкторе IsolatedStorageFileStream.

System.IO.IsolatedStorage.IsolatedStorageException: [IsolatedStorage_Operation_ISFS] Аргументы: строки отладки ресурсов недоступны. Часто ключ и аргументы предоставляют достаточную информацию для диагностики проблемы. См. http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.50524.0&File=mscorlib.dll&Key=IsolatedStorage_Operation_ISFS в System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor (Строковый путь, режим FileMode, доступ к FileAccess, общий доступ к FileShare, буфер32Size IntS, IsolatedStorageFile isf) в AudioOrchard.Client.Utility.DiskManager.CreateNewFile (файл filering , Boolean wasDiskSpaceRequested) в ... (введите здесь не код выполнения SL)

URL в трассировке стека не оказывает никакой помощи, как и поиск в Google. Где я могу узнать больше о IsolatedStorage_Operation_ISFS и что бы это вызвало?

Ответы [ 3 ]

7 голосов
/ 16 февраля 2011

Это означает, что вы достигли предела длины файла в изолированном хранилище Silverlight. Базовым хранилищем для изолированного хранилища может быть путь с очень длинным именем - он выглядит примерно так:

C:\\Users\\kevind\\AppData\\LocalLow\\Microsoft\\Silverlight\\is\\1325qaxz.ekn\\xyro13wm.cn0\\1\\s\\qc4wuhalx4ciu4u5hbqqfohd3y3y4m1guyj5xuv5ml5y5qjbjmaaaeea\\f

(и может быть даже дольше в XP, где база C: \ Documents and Settings)

Учитывая это, не требуется много, чтобы достичь предела пути к файлу в 260 символов. Базовый путь плюс внутренний путь (внутри изолированного хранилища) плюс имя файла должно быть не более 260 символов.

В этом случае я видел два разных режима отказа:

  1. Попытка создать каталог, в котором общая длина пути (базовый путь плюс новый путь) превышает 260 символов. Это приводит к исключению PathToLongException, вызванному IsolatedStorageFile.CreateDirectory

  2. Попытка создать файл с помощью IsolatedStorageFileStream, где общая длина пути (базовый путь плюс внутренний путь плюс имя файла) превышает 260 символов. В результате возникает исключение IsolatedStorageException (IsolatedStorage_Operation_ISFS), вызываемое конструктором IsolatedStorageFileStream.

Насколько я могу судить, не существует реального решения этой проблемы, кроме перехвата исключений и продолжения. К сожалению, это ограничение Silverlight.

Хорошая статья о проблеме здесь:

http://msdn.microsoft.com/en-us/magazine/dd458794.aspx

0 голосов
/ 12 декабря 2011

У меня действительно была эта проблема, и чтобы исправить ее, я очистил свой кеш Silverlight. Если вы перейдете в Program Files -> Microsoft Silverlight и перейдете на вкладку «Хранилище приложений», вы можете удалить любой или все сайты, перечисленные там. Я удалил рассматриваемый сайт и смог получить право в следующий раз.

0 голосов
/ 30 июля 2010

На самом деле нет конструктора для IsolatedStorageFileStream с тем же списком параметров:

System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor (Путь строки, режим FileMode, доступ к FileAccess, общий доступ к FileShare, Int32 bufferSize , IsolatedStorageFile isf)

Параметр Int32 bufferSize здесь действительно избыточен.Пожалуйста, проверьте документацию для конструкторов IsolatedStorageFileStream.
Я думаю, что есть какой-то сторонний компонент, который пытается использовать не поддерживаемый конструктор IsolatedStorageFileStream.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...