如何在部署.NET Web Application时获得预编译的razor文件?

时间:2018-02-09 23:01:33

标签: asp.net-mvc iis razor precompile

我的任务是在我们的服务器上改进IIS预加载和初始化应用程序。我已经在IIS上实现了应用程序初始化和应用程序的预加载,但是在回收/重新启动应用程序池时仍然需要很长的等待时间。我找到了一些我认为可以帮助我的有用链接,但我仍然没有得到预编译的Razor视图。我试图为RazorGenerator关注这篇文章,但似乎没有用。 http://blog.davidebbo.com/2011/06/precompile-your-mvc-views-using.html

我已经采取了以上文章的步骤

1)从这里安装VS Extension:https://marketplace.visualstudio.com/items?itemName=DavidEbbo.RazorGenerator

2)安装了nuget包RazorGenerator.Mvc

3)将输出更改为'无'在剃须刀视图和设置自定义工具'到RazorGenerator'如上文所述。

图片 Extensions and Updated - Razor Generator Nuget Package - RazorGenerator.Mvc Index.cshtml

我做了一个干净的重建,但没有看到我的cshtml文件的.cs文件。

好的,那么我认为这不起作用,让我们试试其他的东西......让我们试试看Visual Studio自带开箱即用的预编译功能,因为这篇文章的答案表明:{ {3}},但仍然没有预编译的cshtml文件。

我想要完成的是如何在手工生成这些文件,以便IIS不必这样做。这是循环/重新启动后的IIS临时缓存文件的映像

Pre-compile razor views in asp .net mvc 5

这是浏览器请求应用程序后的图像

enter image description here

最后在那个发布时我使用了visual studio预编译(对于上面的两个图像),所以我也附加了我的发布选项图像。

IIS Compiled

好的...现在我认为这是不可能的,但是在这里找到另一个SO解决方案:Publish options,但是再次发布那个发布我还是看不到cshtml文件的编译版本在我的应用程序的临时IIS缓存中。是否有一个可靠的解决方案,任何人都可以建议实际上预编译我的应用程序中的cshtml文件,以便它们不会在第一次浏览器请求时生成?我甚至在我的web配置中安装了应用程序初始化,并且安装了所需的IIS功能,甚至可以看到它确实触发了一个" fake"请求我的应用程序,但cshtml文件不会编译在那"假"请求。很抱歉,如果我附上了很多信息,但似乎我在这里问的每个问题我都没有提供我的实际问题... =(希望这个问题能满足它的目的。谢谢!

更新

上面的上一篇文章建议更改csproj文件,以便我也尝试过并附上该文件的屏幕截图。

VS2013 does not compile ASP.NET MVC5 views

文件底部的Action

MvcBuildViews

改变" temp"到" /"没有帮助。

更新2

因此,在周末离开电脑后,我注意到今天早上我已经"允许预编译网站更新"检查。取消选中该值后,我开始在bin文件夹中看到预编译的视图。所以我发布了我的应用程序,认为最多我会等待5-10秒才能提供应用程序(通常在第一次请求它之后它只需要大约2秒),但它仍然需要25-30秒。这是IIS的预期行为吗?

0 个答案:

没有答案