2015-08-28 62 views
0

JSON.Net存在一個奇怪的問題。一切正在與我們的IIS應用程序正常工作。在一天的某個時候,JObject.Parse開始出錯。它工作正常,直到那個時候。之後解析失敗。JObject.Parse在工作了一段時間後出現System.ArgumentNullException

唯一的例外是:

System.ArgumentNullException: Value cannot be null. Parameter name: value 
    at Newtonsoft.Json.Linq.JToken.op_Explicit(JToken value) 
    at ASP.areas_admin_views_shared_editortemplates_reflectionfield_ascx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) 
    at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) 
    .... 

在那裏它被稱爲

<% JObject o = JObject.Parse((string)ViewData["ReflectionField_Choices"].ToString()); %> 

我已經調試這一點,下面的字符串代碼工作:

{ 'choices' : [{'Form_id' : 11065,'Fields' : [],'Name' : 'B'}] } 

而且下面的字符串失敗:

{ 'choices' : [{'Form_id' : 11065,'Fields' : [{'ReflectionField_id' : 283860}],'Name' : 'B'}] } 

失敗的字符串當然在一切正常的情況下工作。有沒有人有任何想法可以在運行時導致這個庫的變化?

回答

0

我認爲,你的問題可能是ViewData["ReflectionField_Choices"]被刪除的過程中的某個地方。可能是因爲它被保存爲ViewData,並在一段時間後(cookies/session期滿)/刷新數據丟失。

+0

這也是我的第一個想法。但我已經調試到模板行,它確實在那裏。我也可以編輯模板(因爲它不會重新啓動應用程序),即使我將失敗的字符串直接提供給方法,它也會失敗。 –