.NET 部署_ASP.NET部署的八大关键实践

来源:互联网 发布:斗鱼刷人气软件购买 编辑:程序博客网 时间:2024/06/05 18:36
原文地址:http://www.devx.com/dotnet/Article/38462/0/page/1

 

本文提出一些部署ASP.NET程序的最佳实践,你可以跟着部署你的应用程序。这些实践可以帮助你避免部署期间和部署之后的一些问题。

 

1. 您程序集的版本

确保制定一个版本控制策略。你可以在编译时使用版本戳AssemblyVersion属性,例如:

  [assembly: AssemblyVersion("1.0.12.34")]

通常,最好在生成期间,对所有程序集应用相同的版本号。

 

2. 给程序集强命名

程序集是.NET中安全、部署、版本控制和代码重用的最小单元。每个程序集包含:

1)      AssemblyIdentity information (name, version, etc.)

2)      Manifestand metadata information

3)      MSILcode

4)      Typeand security information

5)      Resources

一个具有强名称的程序集可以被其程序集的版本、文化信息和数字签名的结合来唯一标识。确定其集版本,文化信息(culture information)和数字签名结合(digital signature

您可以通过.NET框架提供的强命名实用工具(Sn.exe)为您的程序集创建一个强命名。该实用工具要求您提供一个强命名密钥文件作为参数。生成的文件称为“强名称”文件。您可以使用命令行Sn.exe工具来创建一个强命名密钥文件,如下:

   sn--k MyCompany.snk

当您在 VS 中创建一个项目时,您会看到一个名为AssemblyInfo.cs默认文件,用它来指定相关属性。下面是你在AssemblyInfo.cs文件指定的强命名信息。

  [assembly: AssemblyCulture("")]

  [assembly: AssemblyVersion("1.0.0.0")]

  [assembly: AssemblyKeyFile("MyCompany.snk")]


3. 混乱您的程序集(Obfuscate

在发布前,混乱您的程序集是一个很好的实践。混乱使程序集更难反编译,并阻止了方向工程的尝试,这样,保护您的源代码。另外,混乱减少了你的程序集的大小,从而提高了应用程序的性能。

 

4. 部署共享程序集到 GAC

你应该把多个应用程序都使用的程序集部署到全局程序集缓存区(Global Assembly CacheGAC)中,这使得程序集被所有使用该程序集的应用程序共享。与不在GAC中的程序集相比,把程序集部署到GAC中,可以改善程序集的装载性能。强命名的程序集从GAC装载得更快,因为他们在安装时验证,而不是在运行时——.NET框架对于GAC装载的程序集在运行时跳过验证。运行时总是检查强命名程序集,以验证其完整性。.NET的拒绝加载不受信任的或可能已被篡改的程序集。请注意,您必须要为安装到GAC的程序集提供一个强命名。

可以使用 Gacutil 工具将一个程序集放入GAC中。下面的命令把 MyProject.dll 放入GAC,这样,使该程序集全局可访问。

  GacUtil /i MyProject.dll

GAC卸载程序集,可以使用:

  GacUtil /u MyProject.dll

请注意,你甚至可以使强命名程序集全局可访问,即便它不在GAC中。对于这一点,您需要使用XCOPY命令来部署程序集。

 

568. 用适当的部署策略部署、预编译您的站点和Click Once

作者在568分别介绍 Copy Web Site ToolXCopyClick-Once Deployment,以及预编译站点。本文写于2008年,部署站点时,我更喜欢用Web Deployment 工具,因此,此处内容略过。

参考:http://blog.csdn.net/liuning800203/category/737128.aspx

 

7. 减小文件大小

通常,从网页、脚本和CSS中清除额外的空格和其他不必要的字符,减少响应文件的大小是一个很好的做法。您还使用 IIS compression来压缩响应以便降低网络带宽,改进性能。虽然使用IIS compression(压缩需要额外的处理)存在很小的性能损失,但它仍然是一个很好的做法,因为,性能损失与你从中得到的巨大利益相比可以忽略不计。压缩可以减少近一半的网络带宽!这篇文章提供了有关文件大小减少和IISHTTP压缩的更多信息。

 

最后要点

在你部署应用程序之前,确保web.config 文件的编译属性设置为false。当设置为true 时,您的应用程序会消耗更多的内存和处理时间,并且,从Web 服务器下载的脚本和图片不会放在本地缓存。

在把应用程序部署到产品服务器之前,以Release模式构建您的程序集。

通过设置Web 服务扩展为“enabled”,确保IIS 能够处理动态内容。

确保加密您应用程序使用的所有配置数据,例如数据库链接等等。

请记住,使用IIShttp compression 来压缩响应文件大小,来提高整个应用程序的性能。

最后,准备一份清单,列出您所选择的部署步骤。你就可以交叉检查,以确保没有跳过任何步骤。

 

将ASP.NET应用程序部署到产品服务器有很多策略。通过体会这些选择,选择最好的部署方式,准备检查列表,并用它来验证是否是最好的实践,你会发现产品部署可以很顺利地进行。

原创粉丝点击