MVC5.2新项目上的简单Ajax请求非常慢



我在试图理解问题所在时失去了理智。

我创建了一个新的具有身份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毫秒才能执行。

最新更新