是否可以在构建服务器上预编译ASP.NET Web窗体项目?

时间:2015-06-18 13:17:51

标签: asp.net webforms

ASP.NET Web Forms应用程序在第一个请求上的启动成本很高,因为它们需要编译视图代码(.ascx,.aspx等)。我们必须将这些项目部署到多个服务器,这需要启动每个服务器,以便第一个访问站点某些区域的用户没有错误的响应时间。今天这是一个手动过程,我们通过运行aspnet_compiler来实现自动化。

是否可以在构建服务器上运行aspnet_compiler并部署其输出,以便我们不必在我们部署到的每个Web服务器上运行它?

奖金问题:当我们在targetdir中指定aspnet_compiler选项的目标目录时,IIS如何知道在哪里查找已编译的文件?即存储的信息在哪里?

有问题的项目是Web应用程序项目(不是网站项目)。

1 个答案:

答案 0 :(得分:0)

Visual Studio的“发布”对话框中有一个选项可能是您想要的。

Precompile Option

我没有用它来查看它是否确实具有您想要的效果,但配置中有几个选项。你也许可以用你想做的事。

(P.S。:这是一个ASP.NET Web Forms项目,在VB.NET中。虽然这种语言无关紧要。)

此外,根据this MSDN article,您可以将-u-v切换添加到aspnet_compiler,以使其预编译视图以进行更新。

您可能还想查看this MSDN article,因为它描述了与您类似的方案。特别是编译部署应用程序部分,其中声明:

  

通过指定targetDir参数,编译用于部署的应用程序(编译到目标位置)。 targetDir可以是Web应用程序的最终位置,或者可以进一步部署已编译的应用程序

基本上,您可以在构建服务器上运行此命令,然后根据需要分发二进制文件。