熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Web.config配置文件詳解

2022-06-13   來源: .NET編程 

  花了點時間整理了一下ASPNET nfig配置文件的基本使用方法很適合新手參看由於nfig在使用很靈活可以自定義一些節點所以這裡只介紹一些比較常用的節點

  <?xml version=?>

  <!注意: 除了手動編輯此文件以外您還可以使用 Web 管理工具來配置應用程序的設置可以使用 Visual Studio 中的網站>AspNet 配置選項

  設置和注釋的完整列表在 ments 中該文件通常位於 WindowsMicrosoftNetFrameworkvxConfig 中>

  <!Webconfig文件是一個xml文件configuration是xml文件的根節點由於xml文件的根節點只能有一個所以Webconfig的所有配置都是在這個節點內進行的>

  <configuration>

  <!指定配置節和命名空間聲明clear:移除對繼承的節和節組的所有引用只允許由當前 section 和 sectionGroup 元素添加的節和節組remove:移除對繼承的節和節組的引用

  section:定義配置節處理程序與配置元素之間的關聯sectionGroup:定義配置節處理程序與配置節之間的關聯>

  <configSections>

  <sectionGroup name=systemwebextensions type=SystemWebConfigurationSystemWebExtensionsSectionGroup SystemWebExtensions Version= Culture=neutral PublicKeyToken=bfade>

  <sectionGroup name=scripting type=SystemWebConfigurationScriptingSectionGroup SystemWebExtensions Version= Culture=neutral PublicKeyToken=bfade>

  <section name=scriptResourceHandler type=SystemWebConfigurationScriptingScriptResourceHandlerSection SystemWebExtensions Version= Culture=neutral PublicKeyToken=bfade requirePermission=false allowDefinition=MachineToApplication/>

  </sectionGroup>

  </sectionGroup>

  <section name=rewriter type=IntelligenciaUrlRewriterConfigurationRewriterConfigurationSectionHandler IntelligenciaUrlRewriter />   <!用於url改寫>

  </configSections>

  <!appSettings是應用程序設置可以定義應用程序的全局常量設置等信息>

  <appSettings>

  <add key= value= />

  <add key=gao value=weipeng />

  <add key=scon value=server=a;database=northwind;uid=sa;pwd=/>

  </appSettings>

  <!連接字符串設置>

  <connectionStrings>

  <add name=ConnString connectionString=Data Source=GAO;Initial Catalog=HBWXDate;User ID=sa;password=sa></add>

  <add name= connectionString= />

  </connectionStrings>

  <!指定應用子配置設置的資源並鎖定配置設置以防止它們被子配置文件重寫page指定應用包含的配置設置的資源allowOverride是否允許配置文件的重寫提高配置文件的安全性>

  <location path=Defaultaspx allowOverride=false>

  <!控制運行時的行為>

  <systemweb>

  <!identity控制web應用程序的身份驗證標識>

  <identity impersonate=false />

  <!標識特定於頁的配置設置(如是否啟用會話狀態視圖狀態是否檢測用戶的輸入等)<pages>可以在計算機站點應用程序和子目錄級別聲明

  這裡的幾個屬性的意思是默認主頁為Index主題是Default不檢測用戶在浏覽器輸入的內容中是否存在潛在的危險數據(注該項默認是檢測如果你使用了不檢測一要對用戶的輸入進行編碼或驗證)在從客戶端回發頁時將檢查加密的視圖狀態以驗證視圖狀態是否已在客戶端被篡改(注該項默認是不驗證)禁用ViewState>

  <pages masterPageFile=Index theme=Default buffer=true enableViewStateMac=true validateRequest=false enableViewState=false>

  <!controls 元素定義標記前綴所在的 register 指令和命名空間的集合>

  <controls></controls>

  <!將在程序集預編譯期間使用的導入指令的集合>

  <namespaces></namespaces>

  </pages>

  <!默認錯誤頁設置mode:具有OnOffRemoteOnly 種狀態

  customErrors mode=OnRemoteOnly 以啟用自定義錯誤信息或設置為 Off 以禁用自定義錯誤信息

  為每個要處理的錯誤添加 <error> 標記

  On 始終顯示自定義(友好的)信息

  Off 始終顯示詳細的 ASPNET 錯誤信息

  RemoteOnly 只對不在本地 Web 服務器上運行的

  用戶顯示自定義(友好的)信息出於安全目的建議使用此設置以便

  不向遠程客戶端顯示應用程序的詳細信息

  defaultRedirect:用於出現錯誤時重定向的URL地址

  >

  <customErrors defaultRedirect=l mode=RemoteOnly>

  <!特殊代碼編號的錯誤從定向文件>

  <error statusCode= redirect= />

  <error statusCode= redirect= />

  </customErrors>

  <!配置調試和跟蹤:下面配置的意思是啟動調試(默認)捕獲跟蹤信息要緩存的跟蹤請求個數()跟蹤結果的排列順序>

  <trace enabled=true localOnly=false pageOutput=true requestLimit= traceMode=SortByCategory/>

  <! 設置 compilation debug=true 以啟用 ASPX 調試否則將此值設置為

  false 將提高此應用程序的運行時性能

  設置 compilation debug=true 以將調試符號(pdb 信息)

  插入到編譯頁中因為這將創建執行起來

  較慢的大文件所以應該只在調試時將此值設置為 true而在所有其他時候都設置為

  false有關更多信息請參考有關調試 ASPNET 文件的文檔

  設置默認的開發語言C#batch是否支持批處理>

  <compilation debug=true defaultLanguage=c# batch=false>

  <assemblies>

  <!加的程序集引用每添加一個程序集就表示你的應用程序已經依賴了一個程序集你就可以在你的應用程序中使用了>

  <add assembly=SystemWebExtensions Version= Culture=neutral PublicKeyToken=bfade/>

  <add assembly=SystemDesign Version= Culture=neutral PublicKeyToken=BFFFDAA/>

  <add assembly=SystemWebExtensionsDesign Version= Culture=neutral PublicKeyToken=BFADE/>

  <add assembly=SystemWindowsForms Version= Culture=neutral PublicKeyToken=BACE/>

  <add assembly=SystemWeb Version= Culture=neutral PublicKeyToken=BFFFDAA/>

  <add assembly=System Version= Culture=neutral PublicKeyToken=BACE/>

  <add assembly=SystemXml Version= Culture=neutral PublicKeyToken=BACE/>

  <add assembly=SystemDrawing Version= Culture=neutral PublicKeyToken=BFFFDAA/>

  <add assembly=SystemData Version= Culture=neutral PublicKeyToken=BACE/>

  <add assembly=SystemWebServices Version= Culture=neutral PublicKeyToken=BFFFDAA/>

  <add assembly=SystemConfiguration Version= Culture=neutral PublicKeyToken=BFFFDAA/>

  </assemblies>

  <!定義用於編譯自定義資源文件的生成提供程序的集合>

  <buildProviders>

  <!>

  <add extension=aspx type=SystemWebCompilationPageBuildProvider/>

  <add extension=ascx type=SystemWebCompilationUserControlBuildProvider/>

  <add extension=master type=SystemWebCompilationMasterPageBuildProvider/>

  <add extension=asmx type=SystemWebCompilationWebServiceBuildProvider/>

  <add extension=ashx type=SystemWebCompilationWebHandlerBuildProvider/>

  <add extension=soap type=SystemWebCompilationWebServiceBuildProvider/>

  <add extension=resx type=SystemWebCompilationResXBuildProvider/>

  <add extension=resources type=SystemWebCompilationResourcesBuildProvider/>

  <add extension=wsdl type=SystemWebCompilationWsdlBuildProvider/>

  <add extension=xsd type=SystemWebCompilationXsdBuildProvider/>

  <add extension=rdlc type=MicrosoftReportingRdlBuildProvider MicrosoftReportViewerCommon Version= Culture=neutral PublicKeyToken=bfffdaa/>

  </buildProviders>

  </compilation>

  <!通過 <authentication> 節可以配置 ASPNET 使用的 安全身份驗證模式以標識傳入的用戶Windows: IIS 根據應用程序的設置執行身份驗證

  (基本簡要或集成 Windows)在 IIS 中必須禁用匿名訪問Forms: 使用基於窗體的驗證方式為用戶提供一個輸入憑據的自定義窗體(Web 頁)然後

  在您的應用程序中驗證他們的身份用戶憑據標記存儲在 Cookie 中Passport: 采用Passport 通過 Microsoft 的集中身份驗證服務執行的

  它為成員站點提供單獨登錄和核心配置文件服務None: 不采用任何驗證方式>

  <authentication mode=Forms>

  <!Name: 指定完成身份驗證的Http cookie的名稱LoginUrl: 如果未通過驗證或超時後重定向的頁面URL一般為登錄頁面讓用戶重新登錄Protection: 指定 cookie數據的保護方式

  可設置為:All表示加密數據並進行有效性驗證兩種方式None表示不保護CookieEncryption表示對Cookie內容進行加密validation表示對Cookie內容進行有效性驗證TimeOut: 指定Cookie的失效時間 超時後要重新登錄>

  <forms name=ASPXUSERDEMO loginUrl=Loginaspx protection=All timeout=/>

  </authentication>

  <!控制對 URL 資源的客戶端訪問(如允許匿名用戶訪問)此元素可以在任何級別(計算機站點應用程序子目錄或頁)上聲明必需與<authentication> 節配合使用此處的意思是對匿名用戶不進行身份驗證拒絕用戶weipeng>

  <! 授權 此節設置應用程序的授權策略可以允許或拒絕不同的用戶或角色訪問應用程序資源通配符: * 表示任何人? 表示匿名(未經身份驗證的)用戶>

  <authorization>

  <allow users=*/><! 允許所有用戶 >

  <deny users=weipeng/>

  <!<allow users=[逗號分隔的用戶列表]

  roles=[逗號分隔的角色列表]/>

  <deny users=[逗號分隔的用戶列表]

  roles=[逗號分隔的角色列表]/>

  >

  <allow users=aa roles=aa />

  </authorization>

  <!站點全球化設置requestEncoding: 它用來檢查每一個發來請求的編碼responseEncoding: 用於檢查發回的響應內容編碼fileEncoding:用於檢查aspxasax等文件解析的默認編碼默認的編碼是utf>

  <globalization requestEncoding=gb responseEncoding=gb fileEncoding=gb />

  <!會話狀態設置mode: 分為offInprocStateServerSqlServer幾種狀態 mode = InProc 存儲在進程中特點具有最佳的性能速度最快但不能跨多台服務器存儲共享mode = StateServer 存儲在狀態服務器中特點:當需要跨服務器維護用戶會話信息時使用此方法但是信息存儲在狀態服務器上一旦狀態服務器出現故障信息將丟失 mode=SqlServer 存儲在sql server中特點:工作負載會變大但信息不會丟失

  stateConnectionString :指定應用程序存儲遠程會話狀態的服務器名默認為本機sqlConnectionString:當用會話狀態數據庫時在這裡設置連接字符串Cookieless:設置為flase時表示使用cookie會話狀態來標識客戶timeout表示會話超時時間>

  <sessionState mode=InProc stateConnectionString=tcpip=: sqlConnectionString=data source=;Trusted_Connection=yes cookieless=false timeout=></sessionState>

  <!為 ASPNET 應用程序配置頁的視圖狀態設置設置要存儲在頁歷史記錄中的項數>

  <sessionPageState historySize=/>

  <!配置 http運行庫的設置可以在計算機站點應用程序和子目錄級別聲明

  允許最多的請求個數最長允許執行請求時間為控制用戶上傳文件的大小默認是MuseFullyQualifiedRedirectUrl客戶端重定向不需要被自動轉換為完全限定格式>

  <httpRuntime appRequestQueueLimit= executionTimeout= maxRequestLength= useFullyQualifiedRedirectUrl=false/>

  <!httpModules在一個應用程序內配置 HTTP 模塊>

  <httpModules>

  <add name=OutputCache type=SystemWebCachingOutputCacheModule />

  <add name=Session type=SystemWebSessionStateSessionStateModule />

  <add name=WindowsAuthentication type=SystemWebSecurityWindowsAuthenticationModule />

  <add name=FormsAuthentication type=SystemWebSecurityFormsAuthenticationModule />

  <add name=PassportAuthentication type=SystemWebSecurityPassportAuthenticationModule />

  <add name=RoleManager type=SystemWebSecurityRoleManagerModule />

  <add name=UrlAuthorization type=SystemWebSecurityUrlAuthorizationModule />

  <add name=FileAuthorization type=SystemWebSecurityFileAuthorizationModule />

  <add name=AnonymousIdentification type=SystemWebSecurityAnonymousIdentificationModule />

  <!自定義的URL重寫type基本上就是dll名>

  <add name=UrlRewriter type=IntelligenciaUrlRewriterRewriterHttpModule IntelligenciaUrlRewriter />

  <add name=Profile type=SystemWebProfileProfileModule />

  </httpModules>

  <!httpHandlers用於根據用戶請求的URL和HTTP謂詞將用戶的請求交給相應的處理程序可以在配置級別的任何層次配置此節點也就是說可以針對某個特定目錄下指定的特殊文件進行特殊處理

  add:指定映射到處理程序的謂詞/路徑clear:移除當前已配置或已繼承的所有處理程序映射remove:移除映射到處理程序的謂詞/路徑remove 指令必須與前一個 add 指令的謂詞/路徑組合完全匹配該指令不支持通配符>

  <httpHandlers>

  <remove verb=* path=*asmx/>

  <add verb=* path=*asmx validate=false type=SystemWebScriptServicesScriptHandlerFactory SystemWebExtensions Version= Culture=neutral PublicKeyToken=bfade/>

  <add verb=* path=*_AppServiceaxd validate=false type=SystemWebScriptServicesScriptHandlerFactory SystemWebExtensions Version= Culture=neutral PublicKeyToken=bfade/>

  <add verb=GETHEAD path=ScriptResourceaxd type=SystemWebHandlersScriptResourceHandler SystemWebExtensions Version= Culture=neutral PublicKeyToken=bfade validate=false/>

  <add verb=POSTGET path=ajaxpro/*ashx type=AjaxProAjaxHandlerFactory AjaxPro/>

  </httpHandlers>

  <!為 Web 應用程序使用的 Cookie 配置屬性domain:設置 Cookie 域名httpOnlyCookies:在 Internet Explorer SP 中啟用 HttpOnlyCookies Cookie 的輸出默認值為 falserequireSSL:獲取一個指示是否需要安全套接字層 (SSL) 通信的值>

  <httpCookies httpOnlyCookies=false requireSSL=false/>

  <!控制 ASPNET Web 服務及其客戶端的行為protocols:指定傳輸協議ASPNET 可使用這些傳輸協議來解密 HTTP>

  <webServices>

  <protocols>

  <add/>

  </protocols>

  </webServices>

  <!為 Web 應用程序配置緩存設置cache:定義全局應用程序緩存設置outputCache :指定應用程序范圍的輸出緩存設置outputCacheSettings:指定可以應用於應用程序中頁的輸出緩存設置sqlCacheDependency:為 ASPNET 應用程序配置 SQL 緩存依賴項>

  <caching>

  <cache disableMemoryCollection = false disableExpiration = false privateBytesLimit = percentagePhysicalMemoryUsedLimit = privateBytesPollTime = ::/>

  <!設計需要以這種方式緩存的頁時您需要向該頁添加以下指令<%@ OutputCache CacheProfile=ServerOnly %>>

  <outputCacheSettings>

  <outputCacheProfiles>

  <add name=ServerOnly duration= varyByCustom=browser location=Server />

  </outputCacheProfiles>

  </outputCacheSettings>

  </caching>

  </systemweb>

  </location>

  <!網絡設置authenticationModules指定用於對 Internet 請求進行身份驗證的模塊connectionManagement指定與 Internet 宿主的連接的最大數目defaultProxy配置超文本傳輸協議 (HTTP) 代理服務器

  mailSettings配置簡單郵件傳輸協議 (SMTP) 郵件發送選項requestCaching控制網絡請求的緩存機制settings配置 SystemNet 的基本網絡選項>

  <>

  <!配置SMTP電子郵件設置>

  <mailSettings>

  <smtp from=weipeng>

  <network host=Gao password= userName= />

  </smtp>

  </mailSettings>

  <!禁用所有緩存>

  <requestCaching disableAllCaching=true></requestCaching>

  <!指定代理地址並對本地訪問和 跳過代理>

  <defaultProxy>

  <proxy usesystemdefault=True proxyaddress= bypassonlocal=True/>

  <bypasslist>

  <add address=[az]+ />

  </bypasslist>

  </defaultProxy>

  </>

  <!該節替換在 httpHandlers 和 httpModules 節中添加的與 AJAX 相關的 HTTP 處理程序和模塊該節使 IIS 在集成模式下運行時可使用這些處理程序和模塊在iis 下運行 ASPNET AJAX 需要 systemwebServer

  節對早期版本的 IIS 來說則不需要此節 >

  <systemwebServer>

  <validation validateIntegratedModeConfiguration=false/>

  <modules>

  <add name=ScriptModule preCondition=integratedMode type=SystemWebHandlersScriptModule SystemWebExtensions Version= Culture=neutral PublicKeyToken=BFADE/>

  </modules>

  <handlers>

  <remove name=WebServiceHandlerFactoryIntegrated/>

  <add name=ScriptHandlerFactory verb=* path=*asmx preCondition=integratedMode type=SystemWebScriptServicesScriptHandlerFactory SystemWebExtensions Version= Culture=neutral PublicKeyToken=BFADE/>

  <add name=ScriptHandlerFactoryAppServices verb=* path=*_AppServiceaxd preCondition=integratedMode type=SystemWebScriptServicesScriptHandlerFactory SystemWebExtensions Version= Culture=neutral PublicKeyToken=BFADE/>

  <add name=ScriptResource preCondition=integratedMode verb=GETHEAD path=ScriptResourceaxd type=SystemWebHandlersScriptResourceHandler SystemWebExtensions Version= Culture=neutral PublicKeyToken=BFADE/>

  </handlers>

  </systemwebServer>

  <!ASPNET AJAX 中配置 ASPNET 服務>

  <systemwebextensions>

  <!配置 JSON 序列化>

  <scripting>

  <webServices>

  <jsonSerialization maxJsonLength=/>

  </webServices>

  </scripting>

  </systemwebextensions>

  <!對WCF的相關配置>

  <systemserviceModel>

  <services>

  <service name=WCFStudentWCFStudentText behaviorConfiguration=ServiceBehavior>

  <! Service Endpoints >

  <endpoint address= binding=wsHttpBinding contract=WCFStudentIStuServiceContract>

  <! 部署時應刪除或替換下列標識元素以反映在其下運行部署服務的標識刪除之後WCF 將自動推導相應標識>

  <identity>

  <dns value=localhost/>

  </identity>

  </endpoint>

  <endpoint address=mex binding=mexHttpBinding contract=IMetadataExchange/>

  </service>

  </services>

  <behaviors>

  <serviceBehaviors>

  <behavior name=ServiceBehavior>

  <! 為避免洩漏元數據信息請在部署前將以下值設置為 false 並刪除上面的元數據終結點 >

  <serviceMetadata httpGetEnabled=true/>

  <! 要接收故障異常詳細信息以進行調試請將以下值設置為 true在部署前設置為 false 以避免洩漏異常信息>

  <serviceDebug includeExceptionDetailInFaults=false/>

  </behavior>

  </serviceBehaviors>

  </behaviors>

  </systemserviceModel>

  <!URL重定向>

  <rewriter>

  <rewrite url=~/user/u(+)aspx to=~/user/indexaspx?r=$ />

  <rewrite url=~/ask/q(+)aspx to=~/home/ask/contentaspx?id=$ />

  <rewrite url=~/blog/b(+)aspx to=~/home/blog/articleaspx?r=$ />

  <rewrite url=~/news/n(+)aspx to=~/home/news/contentaspx?nid=$ />

  <rewrite url=~/defaultaspx to=~/home/ram/netaspx />

  </rewriter>

  </configuration>


From:http://tw.wingwit.com/Article/program/net/201311/11423.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.