嘿,我得到一个奇怪的内部500错误。我把它缩小到发现DateTime结构给了我这个,但我很难理解为什么。所以我使用的是asp.net web api,目前正在存储信息。
public void StoreFacebookInfo(string accessToken, IdentityUser user)
{
//Retrieve Facebook Mutual Friends
dynamic myMutualFriends = fb.Get(curFbId + "?fields=context.fields(mutual_friends)");
if (myMutualFriends.context.mutual_friends.data != null)
{
foreach (var item in myMutualFriends.context.mutual_friends.data)
{
var f = JsonConvert.DeserializeObject<mutualFriends>(item.ToString());
profileInfo.mutualFriendsList.Add(f);
}
}
//Save all information retrieved from FB into a db
profileInfo.externalId = myInfo.id;
profileInfo.name = myInfo.name;
profileInfo.firstName = firstname.first_name;
profileInfo.lastName = lastname.last_name;
profileInfo.link = link.link;
profileInfo.gender = gender.gender;
profileInfo.imageURL = "https://graph.facebook.com/" + myInfo.id + "/picture?type=large";
profileInfo.locale = locale.locale;
profileInfo.UserId = user.Id;
db.UserInfoes.Add(profileInfo);
db.SaveChanges();
}
}
如你所见,一切看起来都很好。在我的模型中,我有以下内容:
public class UserInfo
{
public UserInfo()
{
this.friendsList = new List<friends>();
this.mutualFriendsList = new List<mutualFriends>();
}
[Key]
public int id { get; set; }
public string externalId { get; set; }
public string name { get; set; }
public string firstName { get; set; }
public string lastName { get; set; }
public string link { get; set; }
public string gender { get; set; }
public string imageURL { get; set; }
public string locale { get; set; }
public string language { get; set; }
public string travellevel { get; set; }
public DateTime birthdate { get; set; }
[ForeignKey("UserId")]
public IdentityUser User { get; set; }
public string UserId { get; set; }
public List<mutualFriends> mutualFriendsList { get; set; }
public List<friends> friendsList { get; set; }
}
当我使用DateTime作为生日时,当它到达db.saveChanges()时,代码会遇到内部500错误。当我将此DateTime更改为字符串时,代码运行正常,我可以保存信息。这对我来说很奇怪,因为当我在另一台计算机上运行它时,它与DateTime完全正常,而不是将其更改为字符串。
如果你能解释一下这个错误,那就太好了。谢谢你的帮助。
答案 0 :(得分:1)
我认为您的问题是您的客户的语言文化与您的服务器不同,并严重解析DateTime(即:dd / MM / yyyy vs MM / dd / yyyy)。
尝试以相同的格式序列化和解析DateTime。