[英]What would cause an exception to occur at “TaskModel.Interop.Task.SaveTaskState” and how can I debug it?
對於我的Windows Phone 8應用程序之一,我看到的崩潰數量很高,其中包含以下詳細信息:
錯誤
狀態保存失敗。 這很可能是由於狀態緩沖區容量不足所致。 應用需要[3289135]個字節,可能超過NavServer限制
堆棧跟蹤
在Microsoft.Phone.TaskModel.Interop.Task.SaveTaskState()在Microsoft.Phone.TaskModel.Interop.Task.FireOnPause(UInt32原因);
顯然,這些是內部函數,但我不知道為什么會發生。 對於這種例外情況,我在網上找不到很少的信息,除了似乎出現了保存和恢復狀態。 我正在按照MSDN上的本指南中的方法進行操作:
https://msdn.microsoft.com/en-us/library/windows/apps/ff967548(v=vs.105).aspx
在MSDN論壇上也有一個類似的問題,沒有明確的答案:
問題:是否有任何明顯的原因導致發生此異常,或者以任何方式嘗試重現此異常?
因此,鑒於錯誤消息,最終的答案很明顯:
應用需要[3289135]個字節,可能超過NavServer限制
基本上,我有一個從IsolatedStorage
加載的List
,其中包含大量數據,當該應用程序被停用或在后台開始運行時,我的視圖模型上的數據保存為State
。
我通過使用屬性[IgnoreDataMember]
將此List
標記來解決此問題,因此我的大型List
將不會保存到State
。 我只是重新加載List
以便在OnNavigatedTo
事件中顯示。 基本上,請確保視圖模型中沒有大量數據。 以我為例,僅3MB以上的數據導致出現此錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.