1. 程式人生 > >Asp.Net 之 Web.config 配置檔案詳解

Asp.Net 之 Web.config 配置檔案詳解

[2]在這個資料夾下還有一個web.config檔案,這個檔案包含了asp.net網站的常用配置。下面是這個web.config檔案的內容:

<?xml version="1.0" encoding="utf-8"?><!-- the root web configuration file --><configuration>
    <!--
        Using a location directive with a missing path attribute
        scopes the configuration to the entire machine.  If used in
        conjunction with allowOverride="false", it can be used to
        prevent configuration from being altered on the machine

        Administrators that want to restrict permissions granted to
        web applications should change the default Trust level and ensure
        that overrides are not allowed
    -->
    <location allowOverride="true">
        <system.web>
            <securityPolicy>
                <trustLevel name="Full" policyFile="internal"/>
                <trustLevel name="High" policyFile="web_hightrust.config"/>
                <trustLevel name="Medium" policyFile="web_mediumtrust.config"/>
                <trustLevel name="Low" policyFile="web_lowtrust.config"/>
                <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
            </securityPolicy>
            <trust level="Full" originUrl=""/>
        </system.web>
    </location>

    <system.net>
        <defaultProxy>
            <proxy usesystemdefault="true"/>
        </defaultProxy>
    </system.net>

    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>

        <browserCaps userAgentCacheKeyLength="64">
            <result type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
        </browserCaps>

        <clientTarget>
            <add alias="ie5" userAgent="Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)"/>
            <add alias="ie4" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)"/>
            <add alias="uplevel" userAgent="Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.1)"/>
            <add alias="downlevel" userAgent="Generic Downlevel"/>
        </clientTarget>

        <compilation>
            <assemblies>
                <add assembly="mscorlib"/>
                <add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
                <add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
                <add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
                <add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
                <add assembly="System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
                <add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
                <add assembly="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
                <add assembly="System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
                <add assembly="System.Web.Mobile, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
                <add assembly="*"/>
              <add assembly="System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add assembly="System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add assembly="System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
                <add assembly="System.IdentityModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
                <add assembly="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </assemblies>
            <buildProviders>
                <add extension=".aspx" type="System.Web.Compilation.PageBuildProvider"/>
                <add extension=".ascx" type="System.Web.Compilation.UserControlBuildProvider"/>
                <add extension=".master" type="System.Web.Compilation.MasterPageBuildProvider"/>
                <add extension=".asmx" type="System.Web.Compilation.WebServiceBuildProvider"/>
                <add extension=".ashx" type="System.Web.Compilation.WebHandlerBuildProvider"/>
                <add extension=".soap" type="System.Web.Compilation.WebServiceBuildProvider"/>
                <add extension=".resx" type="System.Web.Compilation.ResXBuildProvider"/>
                <add extension=".resources" type="System.Web.Compilation.ResourcesBuildProvider"/>
                <add extension=".wsdl" type="System.Web.Compilation.WsdlBuildProvider"/>
                <add extension=".xsd" type="System.Web.Compilation.XsdBuildProvider"/>
                <add extension=".js" type="System.Web.Compilation.ForceCopyBuildProvider"/>
                <add extension=".lic" type="System.Web.Compilation.IgnoreFileBuildProvider"/>
                <add extension=".licx" type="System.Web.Compilation.IgnoreFileBuildProvider"/>
                <add extension=".exclude" type="System.Web.Compilation.IgnoreFileBuildProvider"/>
                <add extension=".refresh" type="System.Web.Compilation.IgnoreFileBuildProvider"/>
              <add extension=".xoml" type="System.ServiceModel.Activation.WorkflowServiceBuildProvider, System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add extension=".svc" type="System.ServiceModel.Activation.ServiceBuildProvider, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </buildProviders>
            <expressionBuilders>
                <add expressionPrefix="Resources" type="System.Web.Compilation.ResourceExpressionBuilder"/>
                <add expressionPrefix="ConnectionStrings" type="System.Web.Compilation.ConnectionStringsExpressionBuilder"/>
                <add expressionPrefix="AppSettings" type="System.Web.Compilation.AppSettingsExpressionBuilder"/>
            </expressionBuilders>
        </compilation>

        <healthMonitoring>
            <bufferModes>
                <add name="Critical Notification" maxBufferSize="100" maxFlushSize="20" urgentFlushThreshold="1" regularFlushInterval="Infinite" urgentFlushInterval="00:01:00" maxBufferThreads="1"/>
                <add name="Notification" maxBufferSize="300" maxFlushSize="20" urgentFlushThreshold="1" regularFlushInterval="Infinite" urgentFlushInterval="00:01:00" maxBufferThreads="1"/>
                <add name="Analysis" maxBufferSize="1000" maxFlushSize="100" urgentFlushThreshold="100" regularFlushInterval="00:05:00" urgentFlushInterval="00:01:00" maxBufferThreads="1"/>
                <add name="Logging" maxBufferSize="1000" maxFlushSize="200" urgentFlushThreshold="800" regularFlushInterval="00:30:00" urgentFlushInterval="00:05:00" maxBufferThreads="1"/>
            </bufferModes>

            <providers>
                <add name="EventLogProvider" type="System.Web.Management.EventLogWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/>
                <add connectionStringName="LocalSqlServer" maxEventDetailsLength="1073741823" buffer="false" bufferMode="Notification" name="SqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/>
                <add name="WmiWebEventProvider" type="System.Web.Management.WmiWebEventProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/>
            </providers>

            <profiles>
                <add name="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00" custom=""/>
                <add name="Critical" minInstances="1" maxLimit="Infinite" minInterval="00:00:00" custom=""/>
            </profiles>

            <rules>
                <add name="All Errors Default" eventName="All Errors" provider="EventLogProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00" custom=""/>
                <add name="Failure Audits Default" eventName="Failure Audits" provider="EventLogProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:01:00" custom=""/>
            </rules>

            <eventMappings>
                <add name="All Events" type="System.Web.Management.WebBaseEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
                <add name="Heartbeats" type="System.Web.Management.WebHeartbeatEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
                <add name="Application Lifetime Events" type="System.Web.Management.WebApplicationLifetimeEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
                <add name="Request Processing Events" type="System.Web.Management.WebRequestEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
                <add name="All Errors" type="System.Web.Management.WebBaseErrorEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
                <add name="Infrastructure Errors" type="System.Web.Management.WebErrorEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
                <add name="Request Processing Errors" type="System.Web.Management.WebRequestErrorEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
                <add name="All Audits" type="System.Web.Management.WebAuditEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
                <add name="Failure Audits" type="System.Web.Management.WebFailureAuditEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
                <add name="Success Audits" type="System.Web.Management.WebSuccessAuditEvent,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0" endEventCode="2147483647"/>
            </eventMappings>

        </healthMonitoring>

        <httpHandlers>
      <add path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false" />
      <add verb="*" path="*.rules" type="System.Web.HttpForbiddenHandler" validate="true"/>
      <add verb="*" path="*.xoml" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false"/>
            <add path="trace.axd" verb="*" type="System.Web.Handlers.TraceHandler" validate="True"/>
            <add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True"/>
            <add path="*.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="True"/>
            <add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True"/>
            <add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True"/>
            <add path="*.asmx" verb="*" type="System.Web.Services.Protocols.WebServiceHandlerFactory, System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="False"/>
            <add path="*.rem" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="False"/>
            <add path="*.soap" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="False"/>
            <add path="*.asax" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.ascx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.master" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.skin" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.browser" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.sitemap" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.dll.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True"/>
            <add path="*.exe.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True"/>
            <add path="*.config" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.cs" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.csproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.vb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.vbproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.webinfo" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.licx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.resx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.resources" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.mdb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.vjsproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.java" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.jsl" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.ldb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.ad" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.dd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.ldd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.sd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.cd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.adprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.lddprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.sdm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.sdmDocument" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.mdf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.ldf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.exclude" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*.refresh" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
            <add path="*" verb="GET,HEAD,POST" type="System.Web.DefaultHttpHandler" validate="True"/>
            <add path="*" verb="*" type="System.Web.HttpMethodNotAllowedHandler" validate="True"/>
        </httpHandlers>

        <httpModules>
            <add name="OutputCache" type="System.Web.Caching.OutputCacheModule"/>
            <add name="Session" type="System.Web.SessionState.SessionStateModule"/>
            <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule"/>
            <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>
            <add name="PassportAuthentication" type="System.Web.Security.PassportAuthenticationModule"/>
            <add name="RoleManager" type="System.Web.Security.RoleManagerModule"/>
            <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule"/>
            <add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule"/>
            <add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule"/>
            <add name="Profile" type="System.Web.Profile.ProfileModule"/>
            <add name="ErrorHandlerModule" type="System.Web.Mobile.ErrorHandlerModule, System.Web.Mobile, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
            <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        </httpModules>

        <mobileControls sessionStateHistorySize="6" cookielessDataDictionaryType="System.Web.Mobile.CookielessData">
            <device name="XhtmlDeviceAdapters" predicateClass="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlPageAdapter" predicateMethod="DeviceQualifies" pageAdapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlPageAdapter">

                <control name="System.Web.UI.MobileControls.Panel" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlPanelAdapter"/>
                <control name="System.Web.UI.MobileControls.Form" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlFormAdapter"/>
                <control name="System.Web.UI.MobileControls.TextBox" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlTextBoxAdapter"/>
                <control name="System.Web.UI.MobileControls.Label" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlLabelAdapter"/>
                <control name="System.Web.UI.MobileControls.LiteralText" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlLiteralTextAdapter"/>
                <control name="System.Web.UI.MobileControls.Link" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlLinkAdapter"/>
                <control name="System.Web.UI.MobileControls.Command" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlCommandAdapter"/>
                <control name="System.Web.UI.MobileControls.PhoneCall" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlPhoneCallAdapter"/>
                <control name="System.Web.UI.MobileControls.List" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlListAdapter"/>
                <control name="System.Web.UI.MobileControls.SelectionList" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlSelectionListAdapter"/>
                <control name="System.Web.UI.MobileControls.ObjectList" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlObjectListAdapter"/>
                <control name="System.Web.UI.MobileControls.Image" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlImageAdapter"/>
                <control name="System.Web.UI.MobileControls.ValidationSummary" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlValidationSummaryAdapter"/>
                <control name="System.Web.UI.MobileControls.Calendar" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlCalendarAdapter"/>
                <control name="System.Web.UI.MobileControls.TextView" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlTextViewAdapter"/>
                <control name="System.Web.UI.MobileControls.MobileControl" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter"/>
                <control name="System.Web.UI.MobileControls.BaseValidator" adapter="System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlValidatorAdapter"/>
            </device>
            <device name="HtmlDeviceAdapters" predicateClass="System.Web.UI.MobileControls.Adapters.HtmlPageAdapter" predicateMethod="DeviceQualifies" pageAdapter="System.Web.UI.MobileControls.Adapters.HtmlPageAdapter">

                <control name="System.Web.UI.MobileControls.Panel" adapter="System.Web.UI.MobileControls.Adapters.HtmlPanelAdapter"/>
                <control name="System.Web.UI.MobileControls.Form" adapter="System.Web.UI.MobileControls.Adapters.HtmlFormAdapter"/>
                <control name="System.Web.UI.MobileControls.TextBox" adapter="System.Web.UI.MobileControls.Adapters.HtmlTextBoxAdapter"/>
                <control name="System.Web.UI.MobileControls.Label" adapter="System.Web.UI.MobileControls.Adapters.HtmlLabelAdapter"/>
                <control name="System.Web.UI.MobileControls.LiteralText" adapter="System.Web.UI.MobileControls.Adapters.HtmlLiteralTextAdapter"/>
                <control name="System.Web.UI.MobileControls.Link" adapter="System.Web.UI.MobileControls.Adapters.HtmlLinkAdapter"/>
                <control name="System.Web.UI.MobileControls.Command" adapter="System.Web.UI.MobileControls.Adapters.HtmlCommandAdapter"/>
                <control name="System.Web.UI.MobileControls.PhoneCall" adapter="System.Web.UI.MobileControls.Adapters.HtmlPhoneCallAdapter"/>
                <control name="System.Web.UI.MobileControls.List" adapter="System.Web.UI.MobileControls.Adapters.HtmlListAdapter"/>
                <control name="System.Web.UI.MobileControls.SelectionList" adapter="System.Web.UI.MobileControls.Adapters.HtmlSelectionListAdapter"/>
                <control name="System.Web.UI.MobileControls.ObjectList" adapter="System.Web.UI.MobileControls.Adapters.HtmlObjectListAdapter"/>
                <control name="System.Web.UI.MobileControls.Image" adapter="System.Web.UI.MobileControls.Adapters.HtmlImageAdapter"/>
                <control name="System.Web.UI.MobileControls.BaseValidator" adapter="System.Web.UI.MobileControls.Adapters.HtmlValidatorAdapter"/>
                <control name="System.Web.UI.MobileControls.ValidationSummary" adapter="System.Web.UI.MobileControls.Adapters.HtmlValidationSummaryAdapter"/>
                <control name="System.Web.UI.MobileControls.Calendar" adapter="System.Web.UI.MobileControls.Adapters.HtmlCalendarAdapter"/>
                <control name="System.Web.UI.MobileControls.TextView" adapter="System.Web.UI.MobileControls.Adapters.HtmlTextViewAdapter"/>
                <control name="System.Web.UI.MobileControls.MobileControl" adapter="System.Web.UI.MobileControls.Adapters.HtmlControlAdapter"/>
            </device>
            <device name="UpWmlDeviceAdapters" inheritsFrom="WmlDeviceAdapters" predicateClass="System.Web.UI.MobileControls.Adapters.UpWmlPageAdapter" predicateMethod="DeviceQualifies" pageAdapter="System.Web.UI.MobileControls.Adapters.UpWmlPageAdapter">
            </device>
            <device name="WmlDeviceAdapters" predicateClass="System.Web.UI.MobileControls.Adapters.WmlPageAdapter" predicateMethod="DeviceQualifies" pageAdapter="System.Web.UI.MobileControls.Adapters.WmlPageAdapter">

                <control name="System.Web.UI.MobileControls.Panel" adapter="System.Web.UI.MobileControls.Adapters.WmlPanelAdapter"/>
                <control name="System.Web.UI.MobileControls.Form" adapter="System.Web.UI.MobileControls.Adapters.WmlFormAdapter"/>
                <control name="System.Web.UI.MobileControls.TextBox" adapter="System.Web.UI.MobileControls.Adapters.WmlTextBoxAdapter"/>
                <control name="System.Web.UI.MobileControls.Label" adapter="System.Web.UI.MobileControls.Adapters.WmlLabelAdapter"/>
                <control name="System.Web.UI.MobileControls.LiteralText" adapter="System.Web.UI.MobileControls.Adapters.WmlLiteralTextAdapter"/>
                <control name="System.Web.UI.MobileControls.Link" adapter="System.Web.UI.MobileControls.Adapters.WmlLinkAdapter"/>
                <control name="System.Web.UI.MobileControls.Command" adapter="System.Web.UI.MobileControls.Adapters.WmlCommandAdapter"/>
                <control name="System.Web.UI.MobileControls.PhoneCall" adapter="System.Web.UI.MobileControls.Adapters.WmlPhoneCallAdapter"/>
                <control name="System.Web.UI.MobileControls.List" adapter="System.Web.UI.MobileControls.Adapters.WmlListAdapter"/>
                <control name="System.Web.UI.MobileControls.SelectionList" adapter="System.Web.UI.MobileControls.Adapters.WmlSelectionListAdapter"/>
                <control name="System.Web.UI.MobileControls.ObjectList" adapter="System.Web.UI.MobileControls.Adapters.WmlObjectListAdapter"/>
                <control name="System.Web.UI.MobileControls.Image" adapter="System.Web.UI.MobileControls.Adapters.WmlImageAdapter"/>
                <control name="System.Web.UI.MobileControls.BaseValidator" adapter="System.Web.UI.MobileControls.Adapters.WmlValidatorAdapter"/>
                <control name="System.Web.UI.MobileControls.ValidationSummary" adapter="System.Web.UI.MobileControls.Adapters.WmlValidationSummaryAdapter"/>
                <control name="System.Web.UI.MobileControls.Calendar" adapter="System.Web.UI.MobileControls.Adapters.WmlCalendarAdapter"/>
                <control name="System.Web.UI.MobileControls.TextView" adapter="System.Web.UI.MobileControls.Adapters.WmlTextViewAdapter"/>
                <control name="System.Web.UI.MobileControls.MobileControl" adapter="System.Web.UI.MobileControls.Adapters.WmlControlAdapter"/>
            </device>
            <device name="ChtmlDeviceAdapters" inheritsFrom="HtmlDeviceAdapters" predicateClass="System.Web.UI.MobileControls.Adapters.ChtmlPageAdapter" predicateMethod="DeviceQualifies" pageAdapter="System.Web.UI.MobileControls.Adapters.ChtmlPageAdapter">

                <control name="System.Web.UI.MobileControls.Form" adapter="System.Web.UI.MobileControls.Adapters.ChtmlFormAdapter"/>
                <control name="System.Web.UI.MobileControls.Calendar" adapter="System.Web.UI.MobileControls.Adapters.ChtmlCalendarAdapter"/>
                <control name="System.Web.UI.MobileControls.Image" adapter="System.Web.UI.MobileControls.Adapters.ChtmlImageAdapter"/>
                <control name="System.Web.UI.MobileControls.TextBox" adapter="System.Web.UI.MobileControls.Adapters.ChtmlTextBoxAdapter"/>
                <control name="System.Web.UI.MobileControls.SelectionList" adapter="System.Web.UI.MobileControls.Adapters.ChtmlSelectionListAdapter"/>
                <control name="System.Web.UI.MobileControls.Command" adapter="System.Web.UI.MobileControls.Adapters.ChtmlCommandAdapter"/>
                <control name="System.Web.UI.MobileControls.PhoneCall" adapter="System.Web.UI.MobileControls.Adapters.ChtmlPhoneCallAdapter"/>
                <control name="System.Web.UI.MobileControls.Link" adapter="System.Web.UI.MobileControls.Adapters.ChtmlLinkAdapter"/>
            </device>
        </mobileControls>

        <pages>
            <namespaces>
                <add namespace="System"/>
                <add namespace="System.Collections"/>
                <add namespace="System.Collections.Specialized"/>
                <add namespace="System.Configuration"/>
                <add namespace="System.Text"/>
                <add namespace="System.Text.RegularExpressions"/>
                <add namespace="System.Web"/>
                <add namespace="System.Web.Caching"/>
                <add namespace="System.Web.SessionState"/>
                <add namespace="System.Web.Security"/>
                <add namespace="System.Web.Profile"/>
                <add namespace="System.Web.UI"/>
                <add namespace="System.Web.UI.WebControls"/>
                <add namespace="System.Web.UI.WebControls.WebParts"/>
                <add namespace="System.Web.UI.HtmlControls"/>
            </namespaces>

            <controls>
                <add tagPrefix="asp" namespace="System.Web.UI.WebControls.WebParts" assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
            </controls>
        </pages>

        <protocols/>

        <siteMap>
            <providers>
                <add siteMapFile="web.sitemap" name="AspNetXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
            </providers>
        </siteMap>

        <urlMappings enabled="true"/>

        <webControls clientScriptsLocation="/aspnet_client/{0}/{1}/"/>

        <webParts>
            <personalization>
                <providers>
                    <add connectionStringName="LocalSqlServer" name="AspNetSqlPersonalizationProvider" type="System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
                </providers>

                <authorization>
                    <deny users="*" verbs="enterSharedScope"/>
                    <allow users="*" verbs="modifyState"/>
                </authorization>
            </personalization>

            <transformers>
                <add name="RowToFieldTransformer" type="System.Web.UI.WebControls.WebParts.RowToFieldTransformer"/>
                <add name="RowToParametersTransformer" type="System.Web.UI.WebControls.WebParts.RowToParametersTransformer"/>
            </transformers>
        </webParts>
    </system.web>
</configuration>


[3]asp.net網站IIS啟動的時候會載入配置檔案中的配置資訊,然後快取這些資訊,這樣就不必每次去讀取配置資訊。在執行過程中asp.net應用程式會監視配置檔案的變化情況,一旦編輯了這些配置資訊,就會重新讀取這些配置資訊並快取。

[4]當我們要讀取某個節點或者節點組資訊時,是按照如下方式搜尋的:
    (1)如果在當前頁面所在目錄下存在web.config檔案,檢視是否存在所要查詢的結點名稱,如果存在返回結果並停止查詢。
    (2)如果當前頁面所在目錄下不存在web.config檔案或者web.config檔案中不存在該結點名,則查詢它的上級目錄,直到網站的根目錄。
    (3)如果網站根目錄下不存在web.config檔案或者web.config檔案中不存在該節點名則在%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config檔案中查詢。
    (4)如果在%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config檔案中不存在相應結點,則在%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config檔案中查詢。
    (5)如果仍然沒有找到則返回null。

  所以如果我們對某個網站或者某個資料夾有特定要求的配置,可以在相應的資料夾下建立一個web.config檔案,覆蓋掉上級資料夾中的web.config檔案中的同名配置即可。這些配置資訊的尋找只查詢一次,以後便被快取起來供後來的呼叫。在asp.net應用程式執行過程中,如果web.config檔案發生更改就會導致相應的應用程式重新啟動,這時儲存在伺服器記憶體中的使用者會話資訊就會丟失(如儲存在記憶體中的Session)。一些軟體(如防毒軟體)每次完成對web.config的訪問時就會修改web.config的訪問時間屬性,也會導致asp.net應用程式的重啟。

2、配置檔案節點說明

  web.config檔案是一個XML檔案,它的根結點是<configuration>,在<configuration>節點下的常見子節點有:<configSections>、<appSettings>、<connectionStrings>和<system.web>。     其中<appSettings>節點主要用於配置一些網站的應用配置資訊,而<connectionStrings>節點主要用於配置網站的資料庫連線字串資訊。
<system.web>節點主要是網站執行時的一些配置,它的常見節點有如下:

[1]<appSettings>節點
  <appSettings>節點主要用來儲存asp.net應用程式的一些配置資訊,比如上傳檔案的儲存路徑等,以下是一個例子:

<appSettings> 
    <!--允許上傳的圖片格式型別--> 
    <add key="ImageType" value=".jpg;.bmp;.gif;.png;.jpeg"/> 
    <!--允許上傳的檔案型別--> 
    <add key="FileType" value=".jpg;.bmp;.gif;.png;.jpeg;.pdf;.zip;.rar;.xls;.doc"/> 
</appSettings>

  對於<appSettings>節點中的值可以按照key來進行訪問,以下就是C#一個讀取key值為“FileType”節點值的例子:

string fileType=ConfigurationManager.AppSettings["FileType "];

[2]<connectionStrings>節點
  <connectionStrings>節點主要用於配置資料庫連線的,我們可以<connectionStrings>節點中增加任意個節點來儲存資料庫連線字串,將來在程式碼中通過程式碼的方式動態獲取節點的值來例項化資料庫連線物件,這樣一旦部署的時候資料庫連線資訊發生變化我們僅需要更改此處的配置即可,而不必因為資料庫連線資訊的變化而需要改動程式程式碼和重新部署。
    以下就是一個<connectionStrings>節點配置的例子:

<connectionStrings> 
    <!--SQL Server資料庫配置--> 
    <add name="AspNetStudyConnectionString1" connectionString="Data Source=(local);Initial Catalog=AspNetStudy;User ID=sa;Password=sa"/> 
</connectionStrings>

  在程式碼中我們可以這麼例項化資料庫連線物件:

//讀取web.config節點配置    
string connectionString = ConfigurationManager.ConnectionStrings["AspNetStudyConnectionString1"].ConnectionString; 
//例項化SqlConnection物件    
SqlConnection connection = new SqlConnection(connectionString);

  這樣做的好處是一旦開發時所用的資料庫和部署時的資料庫不一致,僅僅需要用記事本之類的文字編輯工具編輯connectionString屬性的值就行了。

[2]<compilation>節點
  <compilation>節點配置 ASP.NET 使用的所有編譯設定。預設的debug屬性為“true”,即允許除錯,在這種情況下會影響網站的效能,所以在程式編譯完成交付使用之後應將其設為“false”。

    <compilation debug="true">
        ......
    </compilation>

[4]<authentication>節點設定asp.net身份驗證模式,有四種身份驗證模式,它們的值分別如下:
Mode 驗證模式說明
1)Windows 使用Windows身份驗證,適用於域使用者或者區域網使用者。
2)Forms 使用表單驗證,依靠網站開發人員進行身份驗證。
3)Passport 使用微軟提供的身份驗證服務進行身份驗證。
4)None 不進行任何身份驗證。
<authentication>節點控制使用者對網站、目錄或者單獨頁的訪問,必須配合<authentication>節點一起使用。

[5]<customErrors>節點
  <customErrors>節點用於定義一些自定義錯誤資訊的資訊。此節點有Mode和defaultRedirect兩個屬性,其中defaultRedirect屬性是一個可選屬性,表示應用程式發生錯誤時重定向到的預設URL,如果沒有指定該屬性則顯示一般性錯誤。Mode屬性是一個必選屬性,它有三個可能值,它們所代表的意義分別如下:
Mode值說明
1)On 表示在本地和遠端使用者都會看到自定義錯誤資訊。
2)Off 禁用自定義錯誤資訊,本地和遠端使用者都會看到詳細的錯誤資訊。
3)RemoteOnly 表示本地使用者將看到詳細錯誤資訊,而遠端使用者將會看到自定義錯誤資訊。
  這裡有必要說明一下本地使用者和遠端使用者的概念。當我們訪問asp.net應用程時所使用的機器和釋出asp.net應用程式所使用的機器為同一臺機器時成為本地使用者,反之則稱之為遠端使用者。在開發除錯階段為了便於查詢錯誤Mode屬性建議設定為Off,而在部署階段應將Mode屬性設定為On或者RemoteOnly,以避免這些詳細的錯誤資訊暴露了程式程式碼細節從而引來黑客的入侵。
  下面我們新增一個頁面CustomErrorsDemo.aspx,在它的Page_Load事件裡丟擲一個異常,程式碼如下:

public partial class CustomErrorsDemo : System.Web.UI.Page 
{ 
    void Page_Load() void Page_Load(object sender, EventArgs e) 
    { 
      throw new Exception("故意丟擲的異常。"); 
    } 
}


先配置<customErrors>如下:

<customErrors mode="RemoteOnly"> 
    <error statusCode="403" redirect="NoAccess.htm" /> 
    <error statusCode="404" redirect="FileNotFound.htm" /> 
</customErrors>
[6]<error>子節點
  在<customErrors>節點下還包含有<error>子節點,這個節點主要是根據伺服器的HTTP錯誤狀態程式碼而重定向到我們自定義的錯誤頁面,注意要使<error>子節點下的配置生效,必須將<customErrors>節點節點的Mode屬性設定為“On”。下面是一個例子:
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm"> 
    <error statusCode="403" redirect="403.htm" /> 
    <error statusCode="404" redirect="404.htm" /> 
</customErrors>

  在上面的配置中如果使用者訪問的頁面不存在就會跳轉到404.htm頁面,如果使用者沒有許可權訪問請求的頁面則會跳轉到403.htm頁面,403.htm和404.htm頁面都是我們自己新增的頁面,我們可以在頁面中給出友好的錯誤提示。

[7]<httpHandlers>節點
  <httpHandlers>節點用於根據使用者請求的URL和HTTP謂詞將使用者的請求交給相應的處理程式。可以在配置級別的任何層次配置此節點,也就是說可以針對某個特定目錄下指定的特殊檔案進行特殊處理。
  檢視machine.config檔案同一目錄下的web.config檔案中的<httpHandlers>節點配置:

<httpHandlers>
  ......
    <add path="*.mdf" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/> 
    <add path="*.ldf" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/> 
  ......
</httpHandlers>

  從上面的配置中可以看出,針對*.mdf、*.ldf檔案的Get或者Post請求都會交給System.Web.HttpForbiddenHandler來處理,處理的結果就是使用者不能檢視或者下載相關的檔案。如果我們某個資料夾下的檔案或者某個型別的檔案不允許使用者下載,可以在</httpHandlers>節點中增加相應的子節點。
  下面我們以一個例子來說明<httpHandlers>節點的用法,在我們的asp.net應用程式中建立一個IPData目錄,在IPData目錄中建立一個IPData.txt檔案,然後在Web.config中新增以下配置:

<httpHandlers> 
    <add path="IPData/*.txt" verb="*" type="System.Web.HttpForbiddenHandler"/> 
</httpHandlers>   上面的程式碼的作用是禁止訪問IPData目錄下的任何txt檔案。
  然後新建一個頁面,在頁面中新增一個超級連結,連結到該目錄下IPData.txt檔案,程式碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="HttpHandlersDemo.aspx.cs" Inherits="HttpHandlersDemo" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>httpHandlers節點的例子</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <a href="IPData/IPData.txt" title="開啟IPData/IPData.txt">開啟IPData/IPData.txt</a> 
    </div> 
    </form> 
</body> 
</html>

  執行這個頁面的效果如下:
  

    當前web.config檔案的<customErrors>節點配置如下:   <customErrors mode="On" defaultRedirect="GenericErrorPage.htm"> 
      <error statusCode="403" redirect="403.htm" /> 
      <error statusCode="404" redirect="404.htm" /> 
  </customErrors>   如果存在403.htm和404.htm頁面,點選超級連結之後會出現如下效果:
  
  我們從上圖中可以看到當<customErrors>節點的Mode屬性為“On”時,因為被禁止訪問IPData資料夾下的所有txt檔案,所以會跳轉到自定義的沒有許可權提示頁面,即403.htm。

[8]<httpRuntime>節點
  <httpRuntime>節點用於對 ASP.NET HTTP 執行庫設定。該節可以在計算機、站點、應用程式和子目錄級別宣告。
  例如下面的配置控制使用者最大能上傳的檔案為40M(40*1024K),最大超時時間為60秒,最大併發請求為100個。
<httpRuntime maxRequestLength="40960" executionTimeout="60" appRequestQueueLimit="100"
            
           

相關推薦

Asp.Net Web.config 配置檔案

[2]在這個資料夾下還有一個web.config檔案,這個檔案包含了asp.net網站的常用配置。下面是這個web.config檔案的內容: <?xml version="1.0" encoding="utf-8"?><!-- the root web configuration fi

ASP.NET加密Web.config 配置檔案

可以使用受保護配置來加密 Web 應用程式配置檔案(如 Web.config 檔案)中的敏感資訊(包括使用者名稱和密碼、資料庫連線字串和加密金鑰)。對配置資訊進行加密後,即使攻擊者獲取了對配置檔案的訪問,也可以使攻擊者難以獲取對敏感資訊的訪問,從而改進應用程式的安全性。  

Web.config配置檔案(新手必看)

花了點時間整理了一下ASP.NET Web.config配置檔案的基本使用方法。很適合新手參看,由於Web.config在使用很靈活,可以自定義一些節點。所以這裡只介紹一些比較常用的節點。 <?xml version="1.0"?> <!

Web.config配置檔案

ASP.NET Web.config配置檔案的基本使用方法。很適合新手參看,由於Web.config在使用很靈活,可以自定義一些節點。所以這裡只介紹一些比較常用的節點。 <?xml version="1.0"?> <!--注意: 除了手動編輯此檔案以外,您

Asp.net】—web.config配置

前言    小編最近這一段時間在學習Asp.net視訊,在視訊中,當每一次通過.NET新建一個Web應用程式後,預設情況下會在根目錄自動建立一個預設的Web.config檔案。那麼這個Web.conf

Mavensetting.xml配置檔案

setting.xml配置檔案 maven的配置檔案settings.xml存在於兩個地方: 1.安裝的地方:${M2_HOME}/conf/settings.xml 2.使用者的目錄:${user.home}/.m2/settings.xml 前者又被叫做全域性配置,對作

Androidandroidmainfest.xml配置檔案

寫配置檔案的時候我們會不知道把那些配置項放在哪裡,請看: 配置檔案樣例: <?xml version="1.0" encoding="utf-8"?> <manifest> <!-- 基本配置 --> <uses-permission

maven安裝和eclipse整合以及Mavensetting.xml配置檔案

由於maven需要JDK的支援,所以在安裝maven之前請確保電腦上已經安裝了JDK,且配置好了環境變數,具體的JDK的安裝及配置可自行百度。下面進入安裝 一、maven安裝 前面已經下載了相應版本的maven,且已經配置好JDK的環境;     1

Scrapy爬蟲settings.py配置檔案

# -*- coding: utf-8 -*- # Scrapy settings for demo1 project # # For simplicity, this file contains only settings considered impor

struts2中的web.xml配置檔案

  web.xml 在Web應用程式描述符檔案表示Java Web應用程式的核心,它也是Struts框架的核心的一部分。在web.xml檔案中,Struts的定義其FilterDispatcher,在Servlet過濾器類初始化Struts框架和處理所有的請求。

【Maven使用者手冊】Mavensetting.xml配置檔案

setting.xml配置檔案 maven的配置檔案settings.xml存在於兩個地方: 1.安裝的地方:${M2_HOME}/conf/settings.xml 2.使用者的目錄:${user.home}/.m2/settings.xml 前者又被叫做全域性配置

【Maven使用者手冊】Mavenpom.xml配置檔案

歡迎關注公眾號: ----------------------------------------------正文---------------------------------------------------- setting.xml主要用於配置m

ASP.NET 多環境下配置檔案web.config的靈活配置---轉

轉自:https://www.cnblogs.com/hugogoos/p/6426887.html 除錯,釋出Asp.net程式的時候,開發環境和釋出環境的Web.Config往往不同,比如connectionstring等。如果常常有除錯,釋出的需求,就需要常常修改web.config檔案,這往往是一件

ASP.NETWeb.config基本配置節介紹

通常用來控制對URL資源的客戶端訪問(如允許匿名使用者訪問)。此元素可以在任何級別(計算機、站點、應用程式、子目錄或頁)上宣告。必須與<authentication>節配合使用。使用者可以使用user.identify.name來獲取已經過驗證的當前的使用者名稱;可以使用web.Security.

Asp.netWeb.config連線字串及配置資料庫sqlserver,詳細

近日正在看Asp.net,看到Web.config有很不清楚之處,特意從網路、MSDN蒐集、歸納和整理,供大家分享。在ASP.NET的web.config中,可以用兩種方式來寫連線字串的配置。<configuration> <appSettings&g

Asp.netWeb.config連線字串及配置資料庫sqlserver

近日正在看Asp.net,看到Web.config有很不清楚之處,特意從網路、MSDN蒐集、歸納和整理,供大家分享。 在ASP.NET的web.config中,可以用兩種方式來寫連線字串的配置。 <configuration> <appSettin

Java程式設計師從笨鳥到菜鳥(五十三)細談Hibernate(四)Hibernate常用配置檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Nginx實戰1.1-1.6 Nginx介紹,安裝及配置檔案

1.1 Nginx介紹 HTTP協議發展簡史 加粗  https://coding.net/u/aminglinux/p/nginx/git/blob/master/http/version.md  1991年釋出0.9版,只有GET方法,僅支援html,一個連線一個請求 &n

Mavenpom.xml與setting.xml配置檔案

一.pom.xml詳解     1.概述     pom中節點如下分佈 <project xmlns="http://maven.apache.org/

【SpringBoot學習路】08.Springboot配置檔案(四)

轉載宣告:商業轉載請聯絡作者獲得授權,非商業轉載請註明出處.原文來自 © 呆萌鍾【SpringBoot學習之路】08.Springboot配置檔案詳解(四)  自動配置原理 配置檔案到底能寫什麼?怎麼寫?自動配置原理; 配置檔案能配置的屬性參照