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服務教程中使用的示例的解決方案資源管理器:
在這個應用程序中,有兩個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; 軟件開發,遊戲開發等技術