4

我做了一些研究并遇到了这个: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(或其他配置)中将“名称”创建为 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>

我在某处读到你可以这样做并让它仍然运行,因为在 machine.config 中默认也定义了 configSections。那么为什么要在网站的 web.config 中再次定义它呢?我假设用一些自定义设置覆盖 machine.config?我有什么方法可以确定 machine.config 文件的默认内容是什么?

4

3 回答 3

1

你说的对。ASP.NET 配置节在machine.config. 这是一个层次结构,每个配置文件都覆盖其父文件。您可以在以下目录下找到machine.config根文件。web.config

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG
于 2010-01-15T17:33:54.247 回答
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 文件。

请参阅ASP.NET 配置文件层次结构和继承

于 2010-09-13T21:45:22.833 回答
0

您再次定义它以更改网站的行为。

假设您正在运行多个不同的网站,并且您希望针对特定部分对它们进行不同的配置。这就是它们存在于 web.config 中的原因。

于 2010-01-15T16:56:58.070 回答