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

C# Web.config生产环境性能-最佳实践,c#,.net,visual-studio,performance,production-environment,C#,.net,Visual Studio,Performance,Production Environment,在Visual Studio中,当我们开发时,web.config文件经常被修改,但我不知道修改了什么,在生产环境中对性能有什么影响,配置部分是否重要 例如: <compilation> <compilers> <runtime> ... ... 我认为有很多部分不是必需的,如果没有它或使用其他配置,可以提高生产环境中的性能 所以我的问题是: 在生产环境中,您希望web.config文件中有什么内容不降低性能并有一个轻配置文件? 什么是最佳实践? 谢谢你

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

例如:

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

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

所以我的问题是:

在生产环境中,您希望web.config文件中有什么内容不降低性能并有一个轻配置文件?

什么是最佳实践?


谢谢你的回答

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

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

我建议您使用diffmerge工具查看自上次提交以来添加了哪些节。但是请注意,配置越短并不一定意味着性能越好

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


就最佳实践而言。建议使用一个简短的配置文件,使其更易于维护。如果默认值是隐式默认值或在machine.config中,则在配置中再次指定默认值没有意义。VS2010已经避免了不必要的节。

web.config文件中节的数量与性能无关

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

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

此外,机器对特定项目的配置可能会有所不同。在web场场景中,通常的做法是使用公共machinekey覆盖machines配置文件。这不会对性能产生影响,但会影响您是否能够成功实现站点负载平衡

迭代:节的数量对性能无关紧要。另一方面,定义节的内容是


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

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

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


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

除非您测试和分析它,并向我们提供一些实际的测量结果,否则您不能说web.config中还有1个部分会影响性能。如果无法测量任何差异,则问题不存在。:)但如果在生产环境中没有调试选项,您的应用程序会更快,不是吗?谢谢您的回答。我比较了我的web.config en生产环境和开发环境,生产环境没有太多的部分,但它可以工作。有这么多的部分是不必要的。我不确定为开发/生产使用非常不同的配置是否是个好主意-如何测试生产配置是否正确?除非有很好的实际理由,否则我不会偏离其中一个。你有一些关于调试选项、压缩等的例子吗@malinois:它非常特定于服务器。由于选项发生了根本性的变化,IIS 6和7在web.config中有不同的部分。这里只有一个示例,但它是针对IIS 7上的压缩的:除此之外,我建议访问microsoft.com,确切了解您的环境的特定配置选项。