Session
一.错误页配置文件的设置:
当页面发生错误的时候,ASP.Net会将错误信息展示出来(Sqlconnection的错误就能暴露连接字符串), 这样一来不好看,二来会泄露网站的内部实现信息,给网站带来安全隐患,因此需要定制错误页, 发生错误时显示开发人员定制的页面。404页面放点广告也是好的嘛。 配置web.config,配置customErrors区域: <customErrors mode="On" defaultRedirect="MyErrorPage.aspx"> <error statusCode="403" redirect="NoAccess.htm" /> <error statusCode="404" redirect="FileNotFound.htm" /> </customErrors> mode三个可选值: On:总是显示定制错误页面; Off:不显示定制错误界面,直接显示调用堆栈等异常信息; remoteonly:对于本机的访问显示调用堆栈等异常信息,对于外部用户的显示定制错误页面。 一般设置为RemoteOnly,这样发生错误的话,管理员可以在服务器的浏览器中看详细错误信息,普通用户看不到。学习演示的时候mode设置为On,否则看不到定制页。
二.全局文件: 添加Web→全局应用程序类,注意文件名不要改。 全局文件是对Web应用生命周期的一个事件响应的地方 将Web应用启动时初始化的一些代码写到Application_Start中。应用关闭的时候Application_End调用。 当一个Session启动的时候Session_Start被调用,Session结束(用户主动退出或者超时结束)Session_End被调用。 当一个用户请求来的时候Application_BeginRequest方法被调用 当应用中出现未捕获异常,Application_Error被调用(常考,ASP.Net中的错误处理机制) 用HttpContext.Current.Server.GetLastError()获得异常信息,然后用Log4Net记录到日志中。
三.Session深入--状态提供程序(分三种) 1.InProc(进程内)-默认,速度快/但内存小/易丢失 2.进程外:可以在IIS或ASP.NET服务以外关闭继续保持状态,注意此时存储到 Session中的对象必须支持序列化(serilizable) 3.StateServer:使用aspnet_state.exe 2.1修改配置文件: 2.2<sessionState mode="StateServer" stateConnectionString="tcpip=localhost:42424"/>设置是否允许远程使用,位置:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters 2.3默认端口号:42424 2.4开启服务:我的电脑-管理-服务与应用程序-服务-ASP.NET State Service(ASP.NET 状态服务) 4.SQLServer 3.1新建ASPSTATE数据库使用运行Session数据库脚本: 临时储存区:InstallSqlState.sql & UninstallSqlState.sql 永久储存区:InstallPersistSqlState.sql & UninstallPersistSqlState.sql(需要使用SQLServerAgent服务-因为调度作业) 注意:之后配置数据库权限麻烦的话,可以在运行完aspnet_regsql.exe后在数据库中执行你想要使用的sql脚本,就可以不配置权限了。