Asp.net mvc Azure云上的表单身份验证/配置文件速度慢,本地良好

Asp.net mvc Azure云上的表单身份验证/配置文件速度慢,本地良好,asp.net-mvc,azure,asp.net-mvc-4,asp.net-membership,azure-sql-database,Asp.net Mvc,Azure,Asp.net Mvc 4,Asp.net Membership,Azure Sql Database,我在Azure上使用MVC4,它的加载速度非常慢(超过一分钟)。以下是一些页面的加载时间: (6.9分钟是我尝试加载7个不同页面的选项卡时) 在本地使用Azure emulator时,不会出现此问题 我尝试过使用一个超大的实例,并使用远程桌面在本地运行该站点,但速度同样缓慢。我也尝试过使用iisexpress和普通IIS,但也没有 我使用“Internet应用程序”模板创建了一个全新的MVC项目,该模板包括安全性,非常简单 速度也很慢,所以我很确定我在项目中使用的其他东西不会造成问题。这是货物

我在Azure上使用MVC4,它的加载速度非常慢(超过一分钟)。以下是一些页面的加载时间: (6.9分钟是我尝试加载7个不同页面的选项卡时)

在本地使用Azure emulator时,不会出现此问题

我尝试过使用一个超大的实例,并使用远程桌面在本地运行该站点,但速度同样缓慢。我也尝试过使用iisexpress和普通IIS,但也没有

我使用“Internet应用程序”模板创建了一个全新的MVC项目,该模板包括安全性,非常简单 速度也很慢,所以我很确定我在项目中使用的其他东西不会造成问题。这是货物 仅使用默认MVC项目的时间:

最初我使用了我的成员DB和我的网站的单独的亲和区域,但是我尝试过使用Mac模板和表单验证和我的Project。 重新访问页面不会显著提高其速度

我还尝试创建一个没有身份验证的MVC站点,生成一个10x5000表:

<html>
<body>
    <table>
        <thead>
            <tr>
                @for (int i = 0; i < 10; i++)
                {
                    <th>@i
                    </th>
                }
            </tr>
        </thead>
        <tbody>
            @for(int i = 0; i < 5000; i++)
            {
                <tr>
                    @for(int j = 0; j < 10; j++)
                    {
                        <td>Row @i , column @j</td>    
                    }
                </tr>
            }
        </tbody>
    </table>
</body>
</html>

@对于(int i=0;i<10;i++)
{
@我
}
@对于(int i=0;i<5000;i++)
{
@对于(int j=0;j<10;j++)
{
第@i行,第@j列
}
}
无论是在本地还是在云上,这都可以很好地加载。即使是冷启动,也只需约10-15秒

因此,我相当肯定,问题在于ASP.NET的配置文件/成员资格/身份验证,但仅限于在部署时 到Azure(因为我在本地运行时使用的是与Universal Providers相同的SQL Azure数据库,而没有这些数据库) 减速)

我原以为这个问题会更普遍,但唯一与之相关的是: (可能是这个:)


我正在按照该线程中的建议进行尝试:

您是否检查了数据库服务器防火墙规则中的“允许其他Windows Azure服务访问此服务器”选项

我想知道提供者是否无法访问数据库并在最后超时之前重试(不过,老实说,我希望抛出一个异常)


如果您已经为网络添加了防火墙规则,但没有为Azure本身添加防火墙规则,您可能会遇到这样的问题。

我想不出您尝试/观察到的原因,只是想检查一下显而易见的问题:您的web关联组设置(如果您查看门户上的位置)和您的DB区域是否相同?啊,好问题,忘了加上那个。最初我使用的是其他人在美国中北部建立的数据库,而我建立的网站使用的是美国西部。在我尝试了空白MVC应用程序W/Frand身份验证时,我确实在Western上创建了一个DB,并且尝试了DBS来在测试项目和我的主要项目上加入成员资格,并且都不起作用。是的,数据库都允许其他Windows Azure服务访问它们,我相信这是默认的。在我的本地测试中,它们都有防火墙例外,我已经检查过,以确保数据实际上被写入数据库,而不是某个本地数据库文件。起初我对1分钟超时表示怀疑,并在寻找类似的重试值,但我什么也找不到,随后的值范围为30-90秒。