天下無雙
阿龍 --质量是流程决定的。

ASP.NET项目配置和优化

 

 

1.通过Web.Config文件实现

2.如何配置Web.Config文件:

(1)配置ASP.NET身份验证  <authentication mode="?">

mode="Windows"(IIS根据应用程序设置执行身份验证,IIS必须禁止匿名访问)

mode="Forms"(窗体登录身份验证,用户身份标记存储于Cookie对象中)

mode="PassPort"(通过Microsoft的集中身份验证服务执行,为站点提供不同用户访问此应用程序资源)

mode="None" (不执行身份验证)

例如:当没有登录的用户访问需要身份验证的网页时,网页自动跳转到登录页面,其中loginUrl是登录页面名称,name是Cookie名称。

<authentication mode="Forms"><forms loginUrl="login.aspx" name=".FormsAuthCookie"/></authentication>

 

(2)控制对URL资源的客户端访问(如允许匿名用户访问) <authorization>

【注意】必须与<authentication>配合使用,也可以使用user.identity.name来获取已经通过验证的当前用户 名,可以使用web.Security.FormsAuthentication.RedirectFormLoginPage方法将已经验证的用户重定 向到用户刚请求的页面。

例如:禁止匿名用户的访问:(允许则用allow

<authorization><deny user="?"/></authorization>

 

(3)配置ASP.NET使用的所有编译设置 <compilation>

<compilation DefaultLanguage="VB.NET/C#"> 默认使用后台代码的语言

<compilation Debug="true/false">调式程序:True表示将启动ASPX调试;False可以提高应用程序的运行性能,不过建议在程序开发调试时,设置为“True”;交于客户使用则设置为“False”

 

(4)为ASP.NET应用程序提供有关自定义错误信息的信息 <customErrors mode="?">

【注意】它不适用于XML Web Services中发生的错误

<customErrors mode="On">表示一直显示自定义信息

<customErrors mode="Off">表示一直显示详细的ASP.NET错误信息

<customErrors mode="RemoteOnly">只对不在本地WEB服务器上运行的用户(远程用户)显示自定义信息

例如:当错误发生时将网页跳转到自定义的错误页面。

<customErrors defaultRedirect="ErrorPage.aspx" mode="RemoteOnly"></customErrors>

 

(5)配置ASP.NET HTTP运行库的设置 <httpRuntime>

例如:指定用户上传文件最大为4MB,最长时间为60s,最多请求数为100.

<httpRuntime maxRequestLength="4096" executionTimeout="60" appRequestQueueLimit="100">

 

(6)配置用于标识特定页设置(如是否启用会话状态、视图状态、是否检测用户输入等) <pages>

例如:不检测用户在浏览器输入的内容中是否存在潜在危险数据,在客户端返回页时检查加密的视图状态,以验证视图状态是否已在客户端被篡改。

<pages buffer="true" enableViewStateMac="true" validateRequest="false"/></pages>

 

(7)配置当前应用程序会话状态(是否启用会话状态、会话状态保存位置等等) <sessionState>

<sessionState Mode="Off/InProc/StateServer/SqlServer">Off禁用会话状态、InProc工作进程自身存储会话状态、StateServer将会话信息存储在一个单独的ASP.NET状态服务中、SqlServer将会话信息存储在SQL server数据库中。

<sessionState StateConnectionString="?">存储远程会话状态的服务器名,默认为本地。

<sessionState Cookieless="True/False">True表示不使用Cookie会话标识客户,False表示启动Cookie会话状态。

<sessionState SqlConnectionString="数据库连接字符串">设置SQL Server数据库连接

<sessionState Timeout="20">设置会话时间,超过期限会自动中断会话,默认设置为20(分钟)

例如:存储在本地且用户浏览器不支持Cookie时启用会话状态,会话处于空闲状态的分钟数为20分钟

<sessionState mode="InProc" cookieless="true" timeout="20"/></sessionState>

 

(8)配置ASP.NET的跟踪服务 <trace>

判断程序测试哪里出错

例如:程序不启用跟踪,在服务器上存储的跟踪请求数为10,只能通过跟踪实用工具访问跟踪输出,处理跟踪的时间顺序来显示跟踪信息,跟踪查看器(trace.axd),只用于当地Web服务器。

<trace enable="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>

 

(9)自定义Web.config文件配置:

例如:

<configuration>

<configSections>  //声明配置节的名称和配置版权信息

<section name="appSettings" type="System.Configuration.NameValueFileSectionHandler,System,Version=1.0.3300.0,Culture=netural,PublicKeyToken=b77a5c561934e089"/>

</configSections>

<appSettings>  //实际配置设置

<add key="ss" value="server=a;database=northwind;uid=sa;pwd=111"/>

</appSettings>

<system.web>

....

</system.web>

</configuration>

 

如何来调用上面的数据库连接?

protected static string Isdebug=ConfigurationSettings.AppSettings["debug"]

 

3.比较常用的一些web配置:

<!--禁用客户端验证-->

<pages validateRequest="false"/>

 

<!--上传文件大小,最大大小200M-->

<httpRuntime exection Timeout="9999" maxRequestLength="204800" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100"/>

 

<!--SqlServer数据库连接字符串配置-->

<connectionStrings>
  <add name="连接字符串名" connectionString="Data Source=服务器名;Integrated Security=SSPI;Initial Catalog=数据库名;"/>
  <add name="连接字符串名" connectionString="Data Source=.(本地服务器名);Initial Catalog=数据库名;User ID=Sql Server用户名;Password=Sql Server密码" providerName="System.Data.SqlClient"/>
 </connectionStrings>

 

 

详细请查看:《ASP.NET 3.5全程指南

http://book.csdn.net/bookfiles/988/10098830555.shtml

posted on 2009-04-16 17:44  阿龍  阅读(351)  评论(1编辑  收藏  举报