【问题标题】:View directory compilation time difference between asp.net mvc and asp.net core mvc查看asp.net mvc和asp.net core mvc的目录编译时间差
【发布时间】:2020-03-12 23:52:32
【问题描述】:

我对 asp.net mvc (4.7.2) 和 asp.net core mvc (2.2) 之间的异常情况非常好奇。

我在做什么:

创建空的 asp.net mvc 项目,添加从默认“HomeController”克隆的新“TestController”,复制主控制器视图并将 View 目录命名为“Test”。

在 asp.net core mvc 项目上做同样的事情。

运行 asp.net mvc 项目并将 url 更改为 /Test/Index(视图与 Home/Index 完全相同),第一次运行大约需要 300 毫秒。如果我刷新页面,运行大约需要 5-6 毫秒。

我在 asp.net core mvc 项目上做的完全一样,第一次运行大约需要 30 毫秒,每次刷新大约需要 5-6 毫秒。

我测试了几个案例,我认为这都是关于“第一次创建 X 类型的控制器”。

我在 asp.net 上工作了 5-6 年,但我现在注意到了这一点。你可以说只要 300 毫秒没问题,但在资源不足的机器上需要大约 30 秒。

这是怎么回事?我怎样才能将这个时间减少到 asp.net 核心时间(~30ms)?

编辑: 事实证明它与控制器的创建无关。这是关于视图的目录。我用“~/Views/Home/Index”更改了 TestController 视图路径的索引操作,它打开得很快(如果我之前从这个文件夹渲染了任何视图),但是如果我 “第一次从 X 目录渲染视图(或子目录),正如我所提到的,它运行缓慢。”

我认为这完全是关于编译视图(或视图目录)。但我还没弄明白。

因此,如果我将所有视图文件移动到同一目录,这种情况永远不会发生。但这会很混乱,感觉不对。

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-core


    【解决方案1】:

    我终于明白了。 这都是关于在启动应用程序时(而不是在运行时)编译视图。

    而且它会加速您的网站(尤其是当您的浏览量过多时)

    解决方案:

    1. 卸载项目
    2. 右键单击卸载的项目并转到>“编辑 *.csproj”
    3. 将这些设置粘贴到文件的最后一行

      <Target Name="BeforeBuild"> <!-- Remove obj folder --> <RemoveDir Directories="$(BaseIntermediateOutputPath)" /> <!-- Remove bin folder --> <RemoveDir Directories="$(BaseOutputPath)" /> </Target>

    4. 重新加载项目

    5. 将此代码粘贴到全局 asax > Application_Start

      var siteId = "1"; // you can find your own from applicationhost.config
      var appVirtualDir = $"/LM/W3SVC/{siteId}/ROOT";
      var clientBuildManager = new ClientBuildManager(appVirtualDir, null, null,
                                  new ClientBuildManagerParameter
                                  {
                                      PrecompilationFlags = PrecompilationFlags.Default,
                                  });
      clientBuildManager.PrecompileApplication();
      
    6. 运行项目

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 2020-11-25
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      • 2017-05-12
      相关资源
      最近更新 更多