2010-07-17 6 views
7

Я создаю приложение Windows Phone 7, использующее изолированное хранилище. Код работает большую часть времени, но я продолжаю получать IsolatedStorageExceptions случайно:IsolatedStorage Errors

{"An error occurred while accessing IsolatedStorage."} 

There are no further details about the reason for the exception. Here is the stack trace: 

    at System.IO.IsolatedStorage.IsolatedStorageFile.DeleteFile(String file) 
    at MyApp.Core.Data.WindowsPhoneFileRepository.DeleteFile(String name) 
    at MyApp.Core.Domain.ThingService.SaveThing(Thing Thing) 
    at MyApp.Core.Domain.TrackedThingService.PersistThingLocally(TrackedThing Thing) 
    at MyApp.Ui.ViewModels.TrackViewModel.<.ctor>b__3(Thing Thing) 
    at GalaSoft.MvvmLight.Command.RelayCommand`1.Execute(Object parameter) 
    at GalaSoft.MvvmLight.Command.EventToCommand.Invoke(Object parameter) 
    at System.Windows.Interactivity.TriggerAction.CallInvoke(Object parameter) 
    at System.Windows.Interactivity.TriggerBase.InvokeActions(Object parameter) 
    at System.Windows.Interactivity.EventTriggerBase.OnEvent(EventArgs eventArgs) 
    at System.Windows.Interactivity.EventTriggerBase.OnEventImpl(Object sender, EventArgs eventArgs) 
    at System.Windows.Controls.Primitives.ButtonBase.OnClick() 
    at System.Windows.Controls.Button.OnClick() 
    at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) 
    at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e) 
    at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName) 

файл существует. Я помещаю все свои Изолирующие ресурсы внутри, используя блоки, поэтому я не должен открывать файл нигде.

Что может быть причиной этого?

Как я могу получить более подробную информацию о причине исключения?

ответ

0

Не следует упускать из виду, что WP7 все еще находится в бета-версии (вы обновили версию CTP до версии Beta?).

Рассмотрите возможность создания очень простого приложения, которое управляет изолированным хранилищем в том виде, в котором ваше основное приложение должно видеть, можете ли вы создать небольшое Repo проблемы. Сделав это, отправьте его в Microsoft, чтобы они могли взглянуть на него.

+0

Да, я обновил версию до бета-версии. Я сделаю это в крайнем случае. Конечно, есть какой-то способ получить более подробную информацию об исключении. – chief7

+0

@ Chief7: У вас есть отладчик останавливается на оскорбительной линии, когда это происходит? – AnthonyWJones

+0

Нет, но я могу добавить его. – chief7

2

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

7

Использование блоков в настоящее время не гарантировано для размывания/закрытия потоков в WP7.

Закройте все файлы/потоки явно до тех пор, пока SDK не достигнет точки, на которую вы действительно можете доверять! :)

+0

Действительно? Это так объясняет! И теперь я должен уйти, поскольку у меня есть несколько потоков, чтобы закрыть. Скажи мне, что я могу доверять Близко, чтобы смыть поток? –

+0

@Peter Wone: Close явно, поэтому вы можете доверять ему, чтобы он делал * то, что он говорит на олове *. Использование блоков неявно закрывает соединения, как правило, но объект должен его поддерживать. Помните, что это старый ответ: как только кто-то подтвердит, что он исправлен, добавьте комментарий здесь! –

0

Я столкнулся с той же проблемой.

Я проверил внимательно и нашел место, где я не закрыл FileStream. Закрытие это решило проблему для меня.

Смежные вопросы