我在试图理解问题所在时失去了理智。
我创建了一个新的具有身份2.0身份验证的MVC5项目。然后在index.cshtml中,我在样板之后添加了html:
<script>
$.getJSON("/Home/GetData", function (allData) {
});
</script>
在家庭控制器中:
public JsonResult GetData()
{
return Json("", JsonRequestBehavior.AllowGet);
}
然后在本地启动网站,这个请求平均需要3.2秒。部署到Azure并使用所有主要浏览器,一切都没有改变,我有一个500Mbit的互联网连接和一个非常强大的工作站。
我可以从开发工具中看到,这是XMLHttpRequest:的响应标头
Key Value
Response HTTP/1.1 200 OK
Cache-Control private
Content-Type application/json; charset=utf-8
Server Microsoft-IIS/8.0
X-AspNetMvc-Version 5.2
X-AspNet-Version 4.0.30319
X-SourceFiles =?UTF-8?B?ya3NwYWNlc1xNYWtldXBweVxNYWtldXBweVxIb21lXEdldERhdGE=?=
X-Powered-By ASP.NET
Date Wed, 12 Nov 2014 11:31:19 GMT
Content-Length 2
响应体明显为空"
时间安排:
Name Offset Duration Key
Wait 0 ms 3.26 s
Start + 3.26 s < 1 ms
Request + 3.26 s 3.17 s
Response + 6.43 s < 1 ms
Gap + 6.43 s < 1 ms
DOMContentLoaded (event) + 3.30 s
Load (event) + 3.35 s
为什么要花这么多时间?我之所以这么做,是因为在一个更复杂的应用程序中,我也遇到了同样的问题,所以我想看看这个项目是否出了问题,但这是一个几乎是空的新项目。
放慢速度的Asp.NetMVC管道是一个空的ajax请求吗?
我应该使用WebAPI吗?
感谢的帮助
对于即将到来的另一个,我发现了问题所在。
我使用的不是EntityFrameworkIdentity,而是NuGet包ElCamino.AspNet.Identity.AzureTable,该包使用Azure表作为用户标识。
我不知道这个包有什么问题,我会在这个包的CodePlex页面上打开一个问题,但一旦我删除了这个包并返回到EntityFramework Identity,同样的空XMLHttpRequest需要90毫秒才能执行。