对于我的一个Windows Phone 8应用程序,我可以看到一个高崩溃计数,其中包含以下详细信息:
错误
国家储蓄失败。这很可能是由于国家不足 缓冲能力。应用程序需要[3289135]字节,可能超过 NavServer限制
堆栈跟踪
at Microsoft.Phone.TaskModel.Interop.Task.SaveTaskState()at Microsoft.Phone.TaskModel.Interop.Task.FireOnPause(UInt32 reason);
显然这些是内部功能,但我不知道它们为什么会发生。我可以在网上找到这个例外的非常少的信息,除了保存和恢复状态似乎出现了。我正在遵循MSDN上的本指南中的方法来执行此操作:
https://msdn.microsoft.com/en-us/library/windows/apps/ff967548(v=vs.105).aspx
在MSDN论坛上也有一个类似的问题没有一个可靠的答案:
问题:有没有明显的理由说明为什么会发生这种异常,或者我可以尝试重现这种情况?
答案 0 :(得分:0)
因此,在给出错误消息的情况下,最终答案相当明显:
应用程序需要[3289135]字节,这可能超过NavServer限制
基本上我从List
加载IsolatedStorage
,其中包含大量数据,当应用程序停用或开始在后台运行时,我的视图模型上的数据会保存到State
。
我通过使用属性List
标记此[IgnoreDataMember]
来解决此问题,因此我的大List
不会保存到State
。我只需重新加载List
即可在OnNavigatedTo
事件中显示。基本上,请确保视图模型中没有大量数据。就我而言,只有超过3MB的数据导致出现此错误。