我做了一些研究并遇到了这个问题:http://msdn.microsoft.com/en-us/library/ms228245.aspx
因此,如果我理解正确,那么最终我们正在做的是在项目中使用一些.dll,就像:
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
我猜测不同之处在于,如果你使用configSections方式,你可以通过在webconfig(或其他配置)中稍后创建'name'作为xml元素来设置一些参数。这是正确的,还是我错过了什么?
另外,我注意到我可以从网站的web.config中删除configSections,它运行正常,特别是以下configSections:
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, 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">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<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" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
我正在阅读某个地方,你可以这样做并让它仍然运行,因为configSections也是默认在machine.config中定义的。那么为什么要在网站的web.config中再次定义呢?我假设用一些自定义设置覆盖machine.config?有什么方法可以确定machine.config文件的默认内容是什么?
答案 0 :(得分:1)
你是对的。 ASP.NET配置节在machine.config
中定义。它是一个层次结构,每个配置文件都会覆盖其父级。您可以在以下目录中找到machine.config
和root web.config
文件。
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG
答案 1 :(得分:0)
您可以再次定义它以更改网站的行为。
假设您正在运行多个不同的网站,并且希望为特定部分配置不同的网站。这就是它们存在于web.config中的原因。
答案 2 :(得分:0)
所有.NET Framework应用程序都从名为systemroot \ Microsoft .NET \ Framework \ versionNumber \ CONFIG \ Machine.config的文件继承基本配置设置和默认值。 Machine.config文件用于服务器范围的配置设置。其中一些设置无法在层次结构中较低的配置文件中覆盖。
.NET客户端应用程序(控制台和Windows应用程序)使用名为ApplicationName.config的配置文件来覆盖继承的设置。 ASP.NET应用程序使用名为Web.config的配置文件来覆盖继承的设置。
ASP.NET配置层次结构的根是一个称为根Web.config文件的文件,它与Machine.config文件位于同一目录中。根Web.config文件继承Machine.config文件中的所有设置。根Web.config文件包含适用于运行特定版本.NET Framework的所有ASP.NET应用程序的设置。由于每个ASP.NET应用程序都从根Web.config文件继承默认配置设置,因此您只需为覆盖默认设置的设置创建Web.config文件。