ASP.NET Web Forms应用程序在第一个请求上的启动成本很高,因为它们需要编译视图代码(.ascx,.aspx等)。我们必须将这些项目部署到多个服务器,这需要启动每个服务器,以便第一个访问站点某些区域的用户没有错误的响应时间。今天这是一个手动过程,我们通过运行aspnet_compiler
来实现自动化。
是否可以在构建服务器上运行aspnet_compiler
并部署其输出,以便我们不必在我们部署到的每个Web服务器上运行它?
奖金问题:当我们在targetdir
中指定aspnet_compiler
选项的目标目录时,IIS如何知道在哪里查找已编译的文件?即存储的信息在哪里?
有问题的项目是Web应用程序项目(不是网站项目)。
答案 0 :(得分:0)
Visual Studio的“发布”对话框中有一个选项可能是您想要的。
我没有用它来查看它是否确实具有您想要的效果,但配置中有几个选项。你也许可以用你想做的事。
(P.S。:这是一个ASP.NET Web Forms项目,在VB.NET中。虽然这种语言无关紧要。)
此外,根据this MSDN article,您可以将-u
和-v
切换添加到aspnet_compiler
,以使其预编译视图以进行更新。
您可能还想查看this MSDN article,因为它描述了与您类似的方案。特别是编译部署应用程序部分,其中声明:
通过指定targetDir参数,编译用于部署的应用程序(编译到目标位置)。 targetDir可以是Web应用程序的最终位置,或者可以进一步部署已编译的应用程序。
基本上,您可以在构建服务器上运行此命令,然后根据需要分发二进制文件。