我应该在部署之前预编译ASP.NET 2.0站点吗?

Net*_*awk 11 asp.net deployment .net-2.0

在我工作的地方,我们做了非常多的非常小的ASP.NET应用程序,并且已经发生了几次以预编译格式部署网站,并且需要更改应用程序,但源代码中可用的代码版本控制已过期,开发人员不可用.该应用程序的DLL必须被反编译并一起被黑客入侵.

理想情况下,开发人员不会通过测试和生产来推动变更并跳过检查更改,我们已经对我们的策略进行了更改以防止这种情况发生,但我想知道是否在服务器上编译站点的开销每当应用程序池重新启动都是一个很大的问题,我们应该避免将代码直接上传到服务器.如果我们可以下载实时源,那么检查源代码控制中的版本与实际的实时版本会更容易.

VS编译VS直接上传到服务器并在那里编译它们有什么好处?

Rob*_*len 8

我不同意这一点给出的大部分答案.预编译通过临时发布文件有许多优点,其中最重要的是生产和测试环境中的代码或多或少保持同步.预编译可以确保您测试的代码是每次都要生产的代码.

您遇到的问题不是预编译与首次编译之间的问题.相反,它源于您使用的源控件类型.如果我不得不猜测(我这样做),我会说你正在运行Visual SourceSafe.如果您要切换到一个源代码控制系统,使得分支和合并变得微不足道,那么您可以将代码分成stabledevelopment分支.错误修复发生在dev分支上(stable一旦验证就会合并回分支).这样,未经测试或未准备好的黄金时间代码不会在生产服务器上结束,并且您始终可以使用该stable集合的副本.


atf*_*rgs 0

这取决于应用程序的大小和使用频率。如果它的使用频率足够高,以至于应用程序池仅在一天结束时回收,那么在早上首次启动时短暂等待可能是值得的。如果它每 30 分钟才被命中一次,每次都强制重新编译,那么可能值得预编译。

当然,如果它是一个非常大的应用程序,第一次运行时需要一段时间才能编译,我会倾向于预编译,特别是如果它没有得到持续使用的话。