在尝试创建然后保存parseObject时偶尔(大约1/6),我得到以下异常抛出
在System.DateTime.ParseExact(System.String s,System.String []格式,IFormatProvider提供程序,DateTimeStyles样式)[0x00000] in:0 在System.DateTime.ParseExact(System.String s,System.String格式,IFormatProvider提供程序,DateTimeStyles样式)[0x00000] in:0 在System.DateTime.ParseExact(System.String s,System.String format,IFormatProvider provider)[0x00000] in:0 在Parse.ParseClient.ParseDate(System.String输入)[0x00000]中:0 在Parse.ParseObject.MergeMagicFields(IDictionary`2 data)[0x00000] in:0 在Parse.ParseObject.MergeFromServer(IDictionary`2 data)[0x00000] in:0 在Parse.ParseObject.MergeAfterSave(IDictionary`2 result)[0x00000] in:0 在Parse.ParseObject + c__DisplayClass1f.b__1b(System.Threading.Tasks.Task`1 t)[0x00000] in:0 在System.Threading.Tasks.TaskActionInvoker + FuncTaskInvoke`2 [System.Tuple`2 [System.Net.HttpStatusCode,System.Collections.Generic.IDictionary`2 [System.String,System.Object]],System.Threading.Tasks .Task`1 [System.Tuple`2 [System.Net.HttpStatusCode,System.Collections.Generic.IDictionary`2 [System.String,System.Object]]]]。Invoke(System.Threading.Tasks.Task owner, System.Object state,System.Threading.Tasks.Task context)[0x00000] in:0 在System.Threading.Tasks.Task.InnerInvoke()[0x00000]中:0 在System.Threading.Tasks.Task.ThreadStart()[0x00000]中:0
我正在使用.net解析版本1.3.1。
导致错误的代码如下所示:
ParseObject po = new ParseObject( "Journey" );
po.ObjectId = journey.ID;
po["audioCount"] = journey.AudioFiles.Count;
po["locationPointCount"] = journey.LocationPoints.Count;
po["photoCount"] = journey.PhotoFiles.Count;
po["videoCount"] = journey.VideoFiles.Count;
po["startTime"] = journey.StartTime;
po["endTime"] = journey.EndTime;
po["notes"] = journey.Notes;
po["isInProgress"] = journey.IsInProgress;
po.AddRangeUniqueToList( "audioFiles", audioFiles );
po.AddRangeUniqueToList( "photoFiles", photoFiles );
po.AddRangeUniqueToList( "videoFiles", videoFiles );
po.ACL = new ParseACL(ParseUser.CurrentUser);
po["user"] = ParseUser.CurrentUser;
await po.SaveAsync();
感谢您的帮助
编辑: 删除" startTime"和" endTime"来自ParseObject并没有解决问题。
编辑: 为了获得更多信息,这里是" MergeMagicFields"的反汇编。似乎导致问题的方法。最终调用的唯一路径" ParseData"似乎与解析内部数据有关。
internal virtual void MergeMagicFields( IDictionary<string, object> data )
{
lock( this.mutex )
{
if( data.ContainsKey( "objectId" ) )
{
this.SetObjectIdInternal( data["objectId"] as string );
this.hasBeenFetched = true;
this.OnPropertyChanged( "IsDataAvailable" );
data.Remove( "objectId" );
}
if( data.ContainsKey( "createdAt" ) )
{
this.CreatedAt = new DateTime?( ParseClient.ParseDate( data["createdAt"] as string ) );
data.Remove( "createdAt" );
}
if( data.ContainsKey( "updatedAt" ) )
{
this.UpdatedAt = new DateTime?( ParseClient.ParseDate( data["updatedAt"] as string ) );
data.Remove( "updatedAt" );
}
if( data.ContainsKey( "ACL" ) )
{
ParseACL parseACL = new ParseACL( data["ACL"] as IDictionary<string, object> );
this.serverData["ACL"] = parseACL;
this.AddToHashedObjects( parseACL );
data.Remove( "ACL" );
}
}
}
答案 0 :(得分:0)
[以防其他人遇到此问题]
在向Facebook报告问题后,看来这是一个问题。
您可以在此处跟踪问题的进展情况: