С моей точки зрения, web.config
росло и росло между .net 1.0 и .net 3.5, так как в него постепенно добавлялись «вещи». К тому времени, как мы выпустили .net 3.5, он был переполнен вещами, которые я никогда не использовал и не модифицировал. Да, это требовалось во время выполнения asp.net, но это не моя проблема!
Если вы специально не изменили настройку, которая была перенесена на machine.config
для одного из ваших приложений, нет необходимости заново создавать его в вашем файле web.config. Другими словами, сместив все значения по умолчанию, которые были добавлены в .net 1.1 -> .net 3.5, с каждого web.config, созданного Visual Studio, с на machine.config
, Microsoft сделала файл чище и легче читать. Классический пример такой:
<sectionGroup name="System.Web" type="System.Web.Configuration.MicrosoftWebSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
Весь этот беспорядок можно найти в Visual Studio 2008, сгенерированном web.config
, но его нет в Visual Studio 2010, сгенерированном web.config
, поскольку он был перемещен в machine.config
, где он принадлежит ( но не может быть перемещен в .net 3.0 / .net 3.5, так как они все еще работают на .net 2.0 CLR).
Благодаря тому, что они редко менялись, обновление проекта до .net 4.0 и «очистка» файла web.config не должны вызывать проблем. Оставление избыточной конфигурации в обновленном файле web.config проектов также не должно иметь никакого значения, поскольку значения в web.config просто переопределяют значения из machine.config.