gpt4 book ai didi

asp.net-web-api - MVC Web API 返回 500 错误且没有信息

转载 作者:行者123 更新时间:2023-12-04 14:31:45 25 4
gpt4 key购买 nike

我已经遇到这个问题好几天了(现在已经修复并为遇到此问题并正在拔头发的任何人指出解决方案)。

在我对使用 MVC4 WebAPI 数据的 Silverlight 应用程序进行最新一轮代码更改后,我的 HttpGet 操作之一出现问题,返回 IQueryable<oneofmyclasses> .使用 Fiddler2 观察请求,我可以看到我收到内部服务器错误 (500),没有正文来解释原因。我的 Action 中没有收到任何错误。

检查 1:我确认我的 Action 确实到达了 return collection.AsQueryable();行没有错误。它是

检查 2:我使用此代码验证了我的数据已序列化为 JSON 且没有错误(g 是我的集合):

var json = new JsonMediaTypeFormatter();
json.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
ObjectContent<IEnumerable<Model.MenuGroup>> responseContent = new ObjectContent<IEnumerable<Model.MenuGroup>>(g, json);
MemoryStream ms = new MemoryStream();

responseContent.CopyToAsync(ms).Wait();
ms.Position = 0;
var sr = new StreamReader(ms);
var str = sr.ReadToEnd();

这也奏效了。我还使用 XML 格式化程序对其进行了测试,尽管我很确定它只使用过 JSON(不能太小心)。

检查 3:启用 .Net Framework 调试。这次发生错误时(在 HttpApplication.cs 中)VS 2012 捕获了它。

我的错误:

尽管用这些属性标记了属性,
[XmlIgnore]
[IgnoreDataMember]
[JsonIgnore]

.Net Source 正在调用我的一个属性。问题是,它是一个只写属性。我简单地添加了
get { return null; }

问题就解决了。

我可能应该先完成 Check 3,但我之前对这个错误的经验表明它通常是尝试序列化我的对象时出错,这就是为什么当它们正确序列化时我有点头疼,错误坚持了下来。

最佳答案

我是如何解决的:

启用 .Net Framework 调试。工具 -> 选项 -> 调试 -> 选中“启用 .NET Framework 源步进”

这次发生错误时(在 HttpApplication.cs 中)VS 2012 捕获了它。

关于asp.net-web-api - MVC Web API 返回 500 错误且没有信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12112824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com