首页 新闻 会员 周边

Mvc Web Api 请求速度问题

0
悬赏园豆:5 [已解决问题] 解决于 2015-07-16 11:09

发现Mvc Web Api在http传输请求是很慢, 一个简单的调用,服务器都什么都不做直接返回。

调用api路径的用时3s左右, 不调用api路径的80毫秒左右。

有什么高效率传输的mvc web api实现方式没有。。

console.time('delete');
console.time('delete1');
var data = table.fnGetData($(this).parents('tr'));
$.ajax({
  url: '@Url.Content("/api/Users?id=")' + data.Id,
  //url: '@Url.Content("/User/Delete?id=")' + data.Id,
  type: 'delete',
  dataType: 'json'
  , success: function () {
    console.timeEnd('delete1');
  }
})
.done(function (data) {
  console.timeEnd('delete');

})
.fail(function (data) {
  
});

中国木头的主页 中国木头 | 菜鸟二级 | 园豆:279
提问于:2015-07-16 10:25
< >
分享
最佳答案
0

这不是ASP.NET Web API的问题,是应用程序的问题,将Action中的代码注释试试。

收获园豆:5
dudu | 高人七级 |园豆:30994 | 2015-07-16 10:31

[HttpDelete]
public HttpResponseMessage Delete(string id)
{
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, new { id=1});

return response;
}

public ActionResult Delete(string id) {
  return Json(string.Empty);
}

 

额。服务器啥都没做,只是简单的返回。

中国木头 | 园豆:279 (菜鸟二级) | 2015-07-16 10:34

@中国木头: 每次调用3秒,还是只是第1次调用3秒

dudu | 园豆:30994 (高人七级) | 2015-07-16 10:35

@dudu: 每次~~~ 

中国木头 | 园豆:279 (菜鸟二级) | 2015-07-16 10:37

@中国木头: Get也是3秒?

dudu | 园豆:30994 (高人七级) | 2015-07-16 10:39

@dudu: 多次测试结果。

get: 2024.157ms
Index:975 apiget: 3885.184ms
Index:992 get: 50.940ms
Index:992 get: 72.139ms
Index:975 apiget: 3634.824ms
Index:992 get: 141.347ms
Index:975 apiget: 1007.428ms
Index:992 get: 188.811ms
Index:975 apiget: 2067.574ms
Index:992 get: 44.411ms
Index:975 apiget: 2217.538ms

中国木头 | 园豆:279 (菜鸟二级) | 2015-07-16 10:46

@中国木头: IIS版本是多少?

dudu | 园豆:30994 (高人七级) | 2015-07-16 10:51

@dudu: 上面是vs2013调试结果

下面是win7  发布到iis测试结果... 坑爹的~~~~~

get: 18.741ms
Index:975 apiget: 57.073ms
Index:992 get: 20.472ms
Index:975 apiget: 56.933ms
Index:992 get: 31.265ms
Index:975 apiget: 75.389ms
Index:992 get: 31.522ms
Index:975 apiget: 89.761ms
Index:992 get: 29.259ms
Index:975 apiget: 74.465ms
Index:992 get: 31.036ms
Index:975 apiget: 69.579ms

中国木头 | 园豆:279 (菜鸟二级) | 2015-07-16 11:00

@中国木头: VS2013中用的是IIS Express吗?

dudu | 园豆:30994 (高人七级) | 2015-07-16 11:11

@dudu: 嗯 ,用的默认IIs Express

中国木头 | 园豆:279 (菜鸟二级) | 2015-07-16 11:20
其他回答(2)
0

一般情况是数据库操作的原因,都到秒级别了.

吴瑞祥 | 园豆:29449 (高人七级) | 2015-07-16 10:31

测试的时候已经将服务器操作屏蔽,都是直接返回。。

支持(0) 反对(0) 中国木头 | 园豆:279 (菜鸟二级) | 2015-07-16 10:35
0

先用 Fidder 或者 IE 的“开发人员工具”分析下性能数据,如果从客户端发送完请求后直到收到响应的第一个字节用时大于 80 毫秒,那么就去 IIS 的日志中查看 time-taken 字段的值。

Launcher | 园豆:45045 (高人七级) | 2015-07-16 10:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册