我的任务是改进服务器上应用程序的 IIS 预加载和初始化。我已经在IIS上实现了应用程序初始化和应用程序预加载,但回收/重新启动应用程序池时仍然有很长的等待时间。我找到了一些有用的链接,我认为这些链接对我有帮助,但我仍然没有获得预编译的 Razor 视图。我尝试按照这篇文章进行 RazorGenerator,但它似乎不起作用。http://blog.davidebbo.com/2011/06/precompile-your-mvc-views-using.html http://blog.davidebbo.com/2011/06/precompile-your-mvc-views-using.html
我针对上述文章采取的步骤
1)从这里安装VS扩展:https://marketplace.visualstudio.com/items?itemName=DavidEbbo.RazorGenerator https://marketplace.visualstudio.com/items?itemName=DavidEbbo.RazorGenerator
2)安装nuget包RazorGenerator.Mvc
3) 将 razor 视图上的输出更改为“无”,并将“自定义工具”设置为“RazorGenerator”,如上面的文章所述。
Images
我进行了清理并重建,但没有看到我的 cshtml 文件的 .cs 文件。
好吧,那么我认为这不起作用,让我们尝试其他方法...让我们尝试一下 Visual Studio 开箱即用的预编译功能,正如这篇文章的答案所建议的:在 asp .net mvc 5 中预编译剃刀视图 https://stackoverflow.com/questions/33674473/pre-compile-razor-views-in-asp-net-mvc-5,但仍然没有预编译的cshtml文件。
我想要完成的是如何预先生成这些文件,以便 IIS 不必这样做。这是回收/重新启动后 IIS 临时缓存文件的图像
这是浏览器请求应用程序后的图像
最后,在该发布中,我使用了 Visual Studio 预编译(对于上面的两个图像),因此我也附上了我的发布选项图像。
好吧...现在我认为这是不可能的,但是然后在这里找到另一个SO解决方案:VS2013不编译ASP.NET MVC5视图 https://stackoverflow.com/questions/28289107/vs2013-does-not-compile-asp-net-mvc5-views,但再次发布后,我仍然在应用程序的临时 IIS 缓存中看不到 cshtml 文件的编译版本。是否有一个可靠的解决方案,任何人都可以建议它实际上在我的应用程序中预编译 cshtml 文件,以便它们不会在第一个浏览器请求时生成?我什至在我的 Web 配置中进行了应用程序初始化,并安装了所需的 IIS 功能,甚至可以看到它确实向我的应用程序发出了“假”请求,但是 cshtml 文件不会根据该“假”请求进行编译。抱歉,如果我附加了很多信息,但似乎我在这里提出的每个问题都没有提供我的实际问题...=(希望这个问题能达到目的。谢谢!
UPDATE
上面的最后一篇文章建议更改 csproj 文件,因此我也尝试过并附加该文件的屏幕截图。
以及文件底部的操作
将“temp”更改为“/”也没有帮助。
UPDATE 2
因此,在周末离开计算机后,我今天早上注意到我选中了“允许预编译站点可更新”。取消选中该值后,我开始在 bin 文件夹中看到预编译的视图。因此,我发布我的应用程序时认为最多等待 5-10 秒才能提供应用程序(通常在第一次请求后只需要大约 2 秒),但仍然需要 25-30 秒。这是 IIS 的预期行为吗?