Web.config生产环境性能 - 最佳实践

时间:2011-07-04 10:50:57

标签: c# .net visual-studio performance production-environment

在Visual Studio中,当我们开发时,web.config文件经常被修改,但我不知道修改了什么,以及生产环境对性能的影响,以及配置部分是否重要。

例如:

<compilation>
<compilers>
<runtime>
...

我认为有许多部分不是必需品,没有它或使用其他配置,可以提高生产环境中的性能。

所以我的问题是:

您在生产环境中的web.config文件中寻找什么,以免降低性能并拥有轻量级配置文件?

什么是最佳做法?

感谢您的回答!

2 个答案:

答案 0 :(得分:3)

在Web.Config中,您可以配置是否需要调试程序集或发布程序集。您可以调整WCF,线程池的性能。您可以配置日志记录等。

Visual Studio不会自动更改关键设置。但它唯一能做的就是在您尝试调试应用程序时启用调试程序集。在这种情况下,它会要求您确认。对于生产,您可以禁用调试程序集。

我建议您使用diffmerge工具查看自上次提交后添加的部分。但请注意,较短的配置并不一定意味着更好的性能。

您的web.config与machine.config合并,其中包含许多部分。因此,不放置节通常意味着您没有修改machine.config中的默认值。添加部分并不意味着您要添加新内容。它只表示您正在配置一些其他默认设置。

就最佳做法而言。建议使用简短的配置文件以使其更易于维护。如果它们是隐式默认值,或者无论如何都在machine.config中,则再次指定配置中的默认值是没有意义的。 VS2010已经避免了不必要的部分。

答案 1 :(得分:1)

web.config文件中的部分数与性能无关。

为了运行相同的应用程序,有些机器需要配置比其他机器更多的东西(因此大小不同)。

正如Hasan所指出的,web.config与机器配置文件合并。您可能有一台机器(称为测试),它定义了生产配置中未定义的machine.config中的内容。因此,对于测试,您可能不需要生产所需的某些部分。

此外,特定项目的机器配置可能会有所不同。在Web场方案中,通常的做法是使用通用机器密钥覆盖计算机配置文件。这不会对性能产生影响,但会影响您是否能够成功地对站点进行负载平衡。

迭代:数字部分对性能无关紧要。另一方面,已定义部分的内容是。


现在,如何提高性能:这是基于应用程序的应用程序。对于生产,您需要关闭调试,并打开诸如静态内容的url压缩之类的内容。

可能想要为动态内容打开压缩,甚至配置某些目录以通知浏览器内容是可缓存的(例如/ images,/ css或javascript)。顺便提一下,这些通常会增加生产配置文件的大小并产生一定的后果(比如当你想要更改css文件时),但通常会提高客户端的性能。

对于其他项目,您可能会关闭日志记录或使用完全不同的日志存储提供程序。我们使用elmah,我们的开发框配置用于内存存储,而生产配置为使用数据库服务器。不一定是性能问题,但肯定是一个问题。

这里的要点是应该使用配置文件来确保应用程序可以在该特定平台/机器上执行。