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

时间:2014-11-12 11:44:02

标签: asp.net-mvc-5

我在试图理解错误时失去了理智。

我使用身份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

响应机构显然是空的&#34;&#34;

时间安排:

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   

为什么需要这么多时间? 我最终这样做是因为在一个更复杂的应用程序中我遇到了同样的问题所以我想看看项目是否有问题,但这是一个几乎空的新项目。

即使是空的ajax请求,Asp.Net MVC管道是否会减慢这么多?

我应该使用WebAPI吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

对于另一个人来说,我发现了问题所在。

我没有使用EntityFrameworkIdentity,而是使用Azure表作为用户身份的NuGet包ElCamino.AspNet.Identity.AzureTable。

我不知道包有什么问题,我将在这个包的CodePlex页面上打开一个问题,但是一旦我删除包并返回到EntityFramework Identity,同样空的XMLHttpRequest需要90ms来执行。 / p>