ASP.NET網站配置

ASP.NET應用程序的行爲受配置文件中的不同設置的影響,主要有兩個配置文件:

  • machine.config
  • web.config

machine.config文件包含所有支持設置的默認值和機器特定值。機器設置由系統管理員控制,應用程序通常無法訪問此文件。

但是,應用程序可以通過在其根文件夾中創建web.config文件來覆蓋默認值。 web.config文件是machine.config文件的子集。

如果應用程序包含子目錄,則可以爲每個文件夾定義一個web.config文件。 每個配置文件的範圍是以層次自上而下的方式確定的。

任何web.config文件都可以本地擴展,限制或覆蓋上層定義的任何設置。

Visual Studio爲每個項目生成一個默認的web.config文件。應用程序可以在沒有web.config文件的情況下執行,但是,不能在沒有web.config文件的情況下調試應用程序。

下圖顯示了Web服務教程中使用的示例的解決方案資源管理器

ASP.NET網站配置

在這個應用程序中,有兩個web.config文件用於兩個項目,即Web服務和調用Web服務的Web站點。

web.config文件具有配置元素作爲根節點。這個元素中的信息分爲兩個主要區域:配置區段處理程序聲明區域和配置區域設置區域。

以下代碼片段顯示了配置文件的基本語法:

<configuration>

   <!-- Configuration section-handler declaration area. -->
      <configSections>
         <section name="section1" type="section1Handler" />
         <section name="section2" type="section2Handler" />
      </configSections>
   <!-- Configuration section settings area. -->

   <section1>
      <s1Setting1 attribute1="attr1" />
   </section1>

   <section2>
      <s2Setting1 attribute1="attr1" />
   </section2>

   <system.web>
      <authentication mode="Windows" />
   </system.web>

</configuration>

配置部分處理程序聲明

配置節處理程序包含在<configSections>標記中。每個配置處理程序指定包含在文件中的配置節的名稱,該配置節提供一些配置數據。 它具有以下基本語法:

<configSections>
   <section />
   <sectionGroup />
   <remove />
   <clear/>
</configSections>

它有以下幾點:

  • Clear - 刪除對繼承的部分和部分組的所有引用。
  • Remove - 它刪除對繼承的部分和部分組的引用。
  • Section - 它定義了配置節處理程序和配置元素之間的關聯。
  • sectionGroup - 它定義了配置節處理程序和配置節之間的關聯。

應用程序設置

應用程序設置允許將應用程序範圍的名稱 - 值對存儲爲只讀訪問。 例如,可以將自定義應用程序設置定義爲:

<configuration>
   <appSettings>
      <add key="Application Name" value="MyApplication" /> 
   </appSettings>
</configuration>

例如,還可以存儲書籍的名稱和ISBN號碼:

<configuration>
   <appSettings>
      <add key="appISBN" value="0-273-68726-3" />
      <add key="appBook" value="Corporate Finance" />
   </appSettings>
</configuration>

連接字符串

連接字符串顯示哪些數據庫連接字符串可用於網站。 例如:

<connectionStrings>
   <add name="ASPDotNetStepByStepConnectionString" 
      connectionString="Provider=Microsoft.Jet.OLEDB.4.0;
      Data Source=E:\\projects\datacaching\ /
      datacaching\App_Data\ASPDotNetStepByStep.mdb"
      providerName="System.Data.OleDb" />

   <add name="booksConnectionString" 
      connectionString="Provider=Microsoft.Jet.OLEDB.4.0;
      Data Source=C:\ \databinding\App_Data\books.mdb"
      providerName="System.Data.OleDb" />
</connectionStrings>

System.Web元素

system.web元素指定了ASP.NET配置部分的根元素,幷包含配置ASP.NET Web應用程序和控制應用程序行爲方式的配置元素。

它擁有大部分需要在通用應用程序中進行調整的配置元素。元素的基本語法如下:

<system.web> 
   <anonymousIdentification> 
   <authentication> 
   <authorization> 
   <browserCaps> 
   <caching> 
   <clientTarget> 
   <compilation> 
   <customErrors> 
   <deployment> 
   <deviceFilters> 
   <globalization> 
   <healthMonitoring> 
   <hostingEnvironment> 
   <httpCookies> 
   <httpHandlers> 
   <httpModules> 
   <httpRuntime> 
   <identity> 
   <machineKey> 
   <membership> 
   <mobileControls> 
   <pages> 
   <processModel> 
   <profile> 
   <roleManager> 
   <securityPolicy> 
   <sessionPageState> 
   <sessionState> 
   <siteMap> 
   <trace> 
   <trust> 
   <urlMappings> 
   <webControls> 
   <webParts> 
   <webServices> 
   <xhtmlConformance> 
</system.web>

下表提供了system.web元素的一些常見子元素的簡要描述:

AnonymousIdentification

這需要識別在需要授權時未通過身份驗證的用戶。

Authentication

它用於配置身份驗證支持。 基本的語法如下:

<authentication mode="[Windows|Forms|Passport|None]"> 
   <forms>...</forms>
   <passport/>
</authentication>

Authorization

它配置授權支持。基本的語法如下:

<authorization> 
   <allow .../>
   <deny .../>
</authorization>

Caching

它配置緩存設置。基本的語法如下:

<caching>
   <cache>...</cache>
   <outputCache>...</outputCache>
   <outputCacheSettings>...</outputCacheSettings>
   <sqlCacheDependency>...</sqlCacheDependency>
</caching>

CustomErrors

它定義了自定義錯誤消息。 基本的語法如下:

<customErrors defaultRedirect="url" mode="On|Off|RemoteOnly">
   <error. . ./>
</customErrors>

Deployment

它定義了用於部署的配置設置。 基本語法如下:

<deployment retail="true|false" />

HostingEnvironment

它定義了託管環境的配置設置。 基本語法如下:

<hostingEnvironment idleTimeout="HH:MM:SS" shadowCopyBinAssemblies="true|false" 
   shutdownTimeout="number" urlMetadataSlidingExpiration="HH:MM:SS" />

Identity

它配置應用程序的身份標識。 基本的語法如下:

<identity impersonate="true|false" userName="domain\username"
   password="<secure password>"/>

MachineKey

它配置密鑰以用於表單身份驗證cookie數據的加密和解密。

它還允許配置對視圖狀態數據執行消息身份驗證檢查的驗證密鑰,並形成身份驗證票據。 基本的語法是:

<machineKey validationKey="AutoGenerate,IsolateApps" [String]
   decryptionKey="AutoGenerate,IsolateApps" [String]
   validation="HMACSHA256" [SHA1 | MD5 | 3DES | AES | HMACSHA256 | 
   HMACSHA384 | HMACSHA512 | alg:algorithm_name]
   decryption="Auto" [Auto | DES | 3DES | AES | alg:algorithm_name]
/>

Membership

這配置管理和認證用戶帳戶的參數。 基本的語法是:

<membership defaultProvider="provider name"
   userIsOnlineTimeWindow="number of minutes" hashAlgorithmType="SHA1">
   <providers>...</providers>
</membership>

Pages

它提供了頁面特定的配置。基本的語法是:

<pages asyncTimeout="number" autoEventWireup="[True|False]"
      buffer="[True|False]" clientIDMode="[AutoID|Predictable|Static]"
      compilationMode="[Always|Auto|Never]" 
      controlRenderingCompatibilityVersion="[3.5|4.0]"
      enableEventValidation="[True|False]"
      enableSessionState="[True|False|ReadOnly]"
      enableViewState="[True|False]"
      enableViewStateMac="[True|False]"
      maintainScrollPositionOnPostBack="[True|False]" 
      masterPageFile="file path" 
      maxPageStateFieldLength="number" 
      pageBaseType="typename, assembly"
      pageParserFilterType="string" 
      smartNavigation="[True|False]"
      styleSheetTheme="string"
      theme="string"
      userControlBaseType="typename"
      validateRequest="[True|False]"
      viewStateEncryptionMode="[Always|Auto|Never]" >

   <controls>...</controls>
   <namespaces>...</namespaces>
   <tagMapping>...</tagMapping>
   <ignoreDeviceFilters>...</ignoreDeviceFilters>
</pages>

Profile

它配置用戶配置文件參數。基本的語法是:

<profile enabled="true|false" inherits="fully qualified type reference"
   automaticSaveEnabled="true|false" defaultProvider="provider name">

   <properties>...</properties>
   <providers>...</providers>

</profile>

RoleManager

它配置用戶角色的設置。 基本的語法是:

<roleManager cacheRolesInCookie="true|false" cookieName="name"
   cookiePath="/" cookieProtection="All|Encryption|Validation|None"
   cookieRequireSSL="true|false " cookieSlidingExpiration="true|false "
   cookieTimeout="number of minutes" createPersistentCookie="true|false"
   defaultProvider="provider name" domain="cookie domain"> 
   enabled="true|false"
   maxCachedResults="maximum number of role names cached"

   <providers>...</providers>
</roleManager>

SecurityPolicy

它配置安全策略。 基本的語法是:

<securityPolicy>
   <trustLevel />
</securityPolicy>

UrlMappings

它定義了映射來隱藏原始URL並提供更加用戶友好的URL。 基本的語法是:

<urlMappings enabled="true|false">
   <add.../>
   <clear />
   <remove.../>
</urlMappings>

WebControls

它提供客戶端腳本的共享位置的名稱。 基本的語法是:

<webControls clientScriptsLocation="String" />

WebServices

這用於配置Web服務。

易百教程移動端:請掃描本頁面底部(右側)二維碼並關注微信公衆號,回覆:"教程" 選擇相關教程閱讀或直接訪問:http://m.yiibai.com

上一篇:ASP.NET多線程 下一篇:哥,這回真沒有了

加QQ羣啦,易百教程官方技術學習羣

QQ羣名稱

羣號

人數

免費

等級

羣介紹

JAVA技術

227270512

2000

LV5

Java基礎,JSP(Servlet),JAVA框架,Java高併發架構,Maven等等

MySQL/SQL

418407075

2000

LV5

SQL基礎,MySQL基礎,MySQL存儲過程,視圖,觸發器等等

大數據開發

655154550

2000

LV5

Spark,zookeeper,kafka,CDH,hive,fulme,hbase等Hadoop雲計算生態圈技術

Python技術

287904175

2000

LV5

Python編程,Python Web,Python大數據,Python爬蟲,自然語言處理等

Linux技術

479429477

2000

LV1

Redhat/Centos,Ubuntu,Shell,運維,監控等技術

PHP/Web開發者

460153241

1000

LV0

PHP基礎,PHP高級,網站優化/架構,JS,HTML,JQuery,前端等Web開發技術

人工智能

456236082

1000

LV0

人工智能,深度學習,算法等技術

Oracle數據庫

175248146

1000

LV0

SQL基礎,Oracle基礎,Oracle存儲過程,視圖,觸發器等等

Android開發

159629185

1000

LV0

Android開發,Android Studio,Kotlin,Dagger等技術

微軟技術

579821706

1000

LV0

C#,ASP.Net,VB.Net,ADO.Net,SQL Server,VBA,Excel等技術

測試工程師

415553199

1000

LV0

軟件測試,硬件測試,測試平臺開發,黑白盒測試,Labview,C/C++, Java/.net; 軟件開發,遊戲開發等技術