2015-06-18 70 views
2

因为需要编译视图代码(.ascx,.aspx等),所以ASP.NET Web Forms应用程序对第​​一个请求的启动成本很高。我们必须将这些项目部署到多个服务器,这需要启动每个服务器,以便第一个用户访问网站的某些区域的响应时间不会很长。今天这是一个手动过程,我们通过运行aspnet_compiler来使其自动化。是否可以在构建服务器上预编译ASP.NET Web Forms项目?

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

奖励题:当我们在aspnet_compilertargetdir选项,如何IIS知道到哪里寻找编译后的文件指定目标目录?即存储的信息在哪里?

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

回答

0

在Visual Studio的发布对话框中有一个选项,它可能是你想要的。

Precompile Option

我没有用它来看看它实际上有你想要的效果,但在有几个选项配置它。你可以用这个做你想做的。

(PS:这是一个ASP.NET Web窗体项目以及在VB.NET虽然语言是无关的。)

另外,根据this MSDN article您可以添加-u-v切换到aspnet_compiler让它预编译更新视图。

你也可以看看this MSDN article,因为它描述了一个类似于你的场景。特别是编译为部署部,其中规定的应用程序:

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

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

+0

谢谢,但这不能解决我的问题。我们在构建服务器上运行我们的构建。我希望构建服务器的输出成为预编译视图的可部署工件。 –

+0

@JoshKodroff你使用什么构建服务器?它是如何设置的? –

+0

没关系。要么可以将预编译的二进制文件部署到另一台服务器,要么必须在部署目标上运行'aspnet_compiler'。 –

相关问题