ASP.NET应用程序部署的最佳实践是什么

时间:2009-07-14 20:33:27

标签: asp.net iis deployment

没有太多进入ASP.NET世界,我仍然需要处理ASP.NET项目,需要定期将新版本部署到生产IIS服务器。

ASP.NET应用程序部署的普遍接受的最佳做法是什么?

环境:Windows Server 2003,IIS6,MySQL5,ASP.NET 2.0应用程序。

3 个答案:

答案 0 :(得分:13)

如果在线用户很少,例如在晚上或周末,请尝试执行生产部署。通知用户计划中断。

部署到生产环境时,您可以创建“App_Offline.htm”文件并将其放在ASP.NET网站的根目录中。 ASP.NET识别此文件具有特殊含义 - 所有动态页面请求都显示在此页面而不是用户请求的页面。通常,此页面会显示一条友好的消息,例如“服务器已停机以进行日常维护。请在30分钟后重试。”

让部署减少痛苦的另一个方法是让您的web.config在各种环境(如开发,测试和生产)之间保持尽可能相似。对于在不同环境中真正需要更改的内容,例如连接字符串,您可以通过在web.config中设置将它们提取到自己的connectionStrings.config文件中。

对于数据库部署,有一些很棒的第三方工具(例如SQL Server的Teratrax Database Compare),它们允许您比较两个数据库之间的模式和/或数据,并生成将迁移目标的SQL脚本数据库到其他数据库的模式。这是否适合您将取决于您的确切开发实践。如果您不能使用此类工具,则可以编写每个数据库更改的脚本,然后在部署到其他环境时重播这些脚本。

当然,理想情况下,您应该拥有一个与Production完全相同的测试环境,并且能够进行所有验收测试并确保您的发布稳定,并且在您完成实际工作之前部署将会正常工作。

答案 1 :(得分:2)

Make sure <compiliation debug="false"> is set in your web.config

预编译(使用网站应用程序或web deployment projects)以避免第一次访问网站时的初始减速。

答案 2 :(得分:2)

前段时间我写了一篇针对这种方法的博客文章,它有不同的环境: http://juristr.com/blog/2009/03/best-practices-deploying-webapps-contd_20/

我还要考虑的是增加AssemblyInfo中的版本号,以便跟踪生产系统上使用的实际版本。