电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

Web.config配置文件详解


发布日期:2019/3/17
 

花了点时间整理了一下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>

上一篇:在*.cs或*.vb文件中加入版本跟蹤信息

下一篇:主动编程与被动编程!