1

这可能是一个相当广泛的帖子。但是我已经完成了我的研究,现在我被困住了,我真的不想深究这一点。

我遇到的问题是共享环境(Web 主机)中 ASP.NET MVC 3 站点的性能。如果您查看下图,您会明白我的意思: Loading time graph from KeepAliveForever

正如您所看到的,该站点有这些峰值,其中加载时间约为每 20-30 分钟 10 秒,这之间的加载时间正常。由于它是共享主机,它们每 20 分钟回收一次应用程序池。尽管我的印象是,只有没有活动的网站才会从缓存中“丢弃”。由于 KeepAliveForever 服务应该每 10 分钟请求一次站点,因此对我来说似乎并非如此。无论发生什么,该站点似乎都已从缓存中删除。

这是我用来预编译站点的命令:

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
aspnet_compiler -p "c:\dev\AlltForMusik\AlltForMusik" -v / -f "c:\dev\Deploy"

我还禁用了调试并注释掉了 Global.asax 中的 RegisterAllAreas(),因为我不使用区域,而且我读到它可能会很慢:

protected void Application_Start()
    {
        //Database.SetInitializer(new DontDropDbJustCreateTablesIfModelChanged<AlltForMusikContext>());

        //AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }

我可能在 Global.asax 的 RegisterRoutes() 中添加了 15 条路由。但这是相当正常的数量,不应该造成任何重大延误吗?

该站点非常轻量级,从数据库加载的唯一内容可以在这里看到:来自数据库的组件

我读过这对许多其他人来说是一个问题,但我无法理解这应该是预期的结果。我的意思是,大多数较小的站点都使用具有负载平衡的共享托管环境。如果网站速度这么慢,我将如何使用 MVC 为客户开发网站?!这是付费客户绝不会容忍的!

或者 MVC 真的只应该在构建在它自己的服务器上运行的大型应用程序时使用(具有更改首选项等的能力)?

非常感谢您花费时间和精力帮助我解决这个问题。我已经和我的虚拟主机谈过了,他们真的帮不上忙。Web 主机总体上并不慢,这似乎只是 MVC 站点的问题。

最好的问候 Mikael Edebro

4

0 回答 0