【发布时间】:2015-07-12 00:17:47
【问题描述】:
我为这个问题花了几个星期。但我仍然无法解决这个问题。
我正在通过在angularjs 中使用http 调用Web API 服务
$http({
method: 'GET',
url: rootUrl + '/api/Project/ProjectList',
headers: {
'Content-Type': "application/json; charset=utf-8"
}
}).success(function (response) {
$scope.ProjectList = response;
}).error(function (response, errorCode) {
if (errorCode == 444) {
}
})
我在服务器端和客户端编码中设置了断点。
当我调用服务时,服务器端方法快速命中
我的服务器端方法(我正在使用 MVC WEB API 和实体框架)
[ActionName("ProjectList")]
[HttpGet]
public IList<Project> ProjectList(Project projectModel)
{
return objIProjectService.ListOfProject();
}
我检查了,服务返回 8 条记录(来自数据库的 8 行),断点在 objIProjectService.ListOfProject(); 这一行。
一切都很顺利。但我的(回复)http.success and http.error 回调函数运行速度非常慢。
请参阅下图了解我调用 http 方法时的性能
在 5 或 10 分钟后,http error function 终于被击中,并出现以下错误消息。
System.OutOfMemoryException:抛出了“System.OutOfMemoryException”类型的异常
这就是问题所在。请让我知道我该如何解决?
其实我为这个问题做了点什么。
- 我已清除临时文件夹 - 无法正常工作
- 我已重新启动 Visual Studio 并清理解决方案,重新启动我的系统并修复 Visual Studio.- 不工作
- 但如果我删除了数据库中的一些行(我正在使用
sql server 2008 r2),那么它就可以工作了。
例如,如果我的数据库表的行数少于 7 行,那么它的运行速度很快,不会出现该错误。 但是如果我的表超过 8 行,那么它的工作速度非常慢并抛出了错误?? 为什么? 回覆 如果您遇到此问题,请分享您的解决方案。
【问题讨论】:
-
您需要将
objIProjectService.ListOfProject();函数的实现、数据库表的结构以及示例数据发布在哪里可以正常工作以及哪里会出现错误 -
那个代码是:
return context.products.ToList() -
尝试使用 JSON 作为返回类型,序列化对象并将其发送回
-
那么返回的模型和表中的数据呢?这是序列化到您的模型以返回具有循环引用的问题吗?
标签: c# sql-server asp.net-mvc angularjs asp.net-web-api