aspnet中,session默认以inproc模式存储,也就是保存在iis进程中,这样有个优点就是效率高,但不利于为本负载均衡扩展。可以把session信息保存在SQL Server中,据说,该种方式比起inproc性能损失为10%-20%。如何实现呢,主要分两步介绍:
1、初始化SQL Server中的状态数据库
ASP.NET SQL Server 提供注册工具Aspnet_regsql.exe,用于创建供 ASP.NET 中的 SQL Server 提供程序使用的 Microsoft SQL Server
数据库。Aspnet_regsql.exe位于 /%windir%/Microsoft.NET/Framework/<versionNumber>/aspnet_regsql.exe 目录下。如果麻烦,可以 直接用visual studio tools 的命令提示工具中直接输入aspnet_regsql.exe使用。用法如下:
Aspnet_regsql.exe <options>
可以用如下的语法来添加默认session数据库ASPState
aspnet_regsql.exe -S localhost -U sa -P why1234? -ssadd -sstype p
-S,-U/-P
必须是大写,分别表示数据库服务器,用户名和密码。
-ssadd / –ssremove 参数:
-ssadd表示是添加Session数据库, -ssremove表示移除Session数据库.
sstype 参数:
选项
|
说明
|
t
|
将会话数据存储到 SQL Server tempdb 数据库中。这是默认设置。如果将会话数据存储到 tempdb 数据库中,则在重新启动 SQL Server 时将丢失会话数据。
|
p
|
将会话数据存储到 ASPState 数据库中,而不是存储到 tempdb 数据库中。
|
c
|
将会话数据存储到自定义数据库中。如果指定 c
选项,则还必须使用 -d
选项包括自定义数据库的名称。
|
创建自定义数据库myAppState,可以用如下的语法:
aspnet_regsql.exe -S localhost -U sa -P why1234? -ssadd -sstype c -d myAppState
2、配置webconfig
在webconfig的 <system.web>节下添加如下配置:
<sessionState mode="SQLServer" sqlConnectionString="server=localhost; uid=sa; pwd=123456;"/>
如果在初始化数据库的时候,创建了自定义数据库可以用类似于如下的的配置:
<sessionState mode="SQLServer" allowCustomSqlDatabase="true" sqlConnectionString="server=localhost; DataBase=myAspState;uid=sa; pwd=123456;"/>
通过以上两步的设置,已经可以了。详细情况请参阅msdn。
分享到:
相关推荐
然而,PHP默认将Session数据保存在文件系统中,这在高并发或需要持久化Session数据的情况下可能不理想。为了克服这些问题,开发者可以选择将Session数据保存到数据库中。本文将详细探讨如何实现这一功能,特别是通过...
然而,系统默认情况下,PHP会将Session数据保存在文件系统中,这在多服务器环境或者高并发场景下可能会成为性能瓶颈。为了解决这个问题,我们可以将Session数据保存到数据库中,这样不仅可以实现分布式Session管理,...
7. **Database连接**:在"asp动态网站+数据库"中,通常会使用ADO(ActiveX Data Objects)来连接和操作SQL数据库,实现数据的读取、写入和更新。 8. **SQL语言**:SQL(Structured Query Language)是用于管理关系...
当用户在不同服务器之间跳转时,传统的InProc Session(存储在ASP.NET工作进程内存中)模式可能会导致会话数据丢失,而Session SQLServer模式则通过将Session数据存储在中央SQL Server数据库中,确保了会话的跨...
然而,默认情况下,Session数据是存储在内存中的,这可能会导致一些问题,比如当应用程序需要处理大量并发用户时,或者当应用程序部署在多台服务器上时,这种情况下,将Session数据存储在数据库中就显得尤为重要。...
这里使用了`session.gc_maxlifetime`配置项来设置Session数据在数据库中的最大生命周期。 类中的方法及其功能概述: - `__construct`:构造函数,接受一个PDO实例并将其存储为私有变量供其他方法使用,同时设置了...
在本手册中,我们将介绍如何在DB2数据库中进行SQL注入攻击的检测和防止。同时,我们还将提供一些实用的SQL语句,用于检测和防止SQL注入攻击。 检测SQL注入 在DB2数据库中,可以使用以下方法来检测SQL注入: 1. ...
在SQL Server环境中,了解当前正在进行的数据库还原操作的状态对于DBA(数据库管理员)或开发人员来说至关重要。这不仅能帮助他们监控还原进度,还能确保数据库在还原过程中不会出现异常中断或其他问题。下面将详细...
在 PHP 开发中,为了增强安全性、可扩展性和便于管理,有时会需要将 session 数据存储到数据库中,而不是默认的文件系统。以下是一个具体的实例,展示了如何使用 PostgreSQL 和 MySQL 数据库来实现这一功能。 1. **...
【ASP与SQL数据库在构建网上购物商城中的应用】 ASP(Active Server Pages)是微软开发的一种服务器端脚本语言,常用于构建动态网站和Web应用程序。它允许开发者在HTML页面中嵌入VBScript或JScript代码,实现服务器...
### SQL数据库读取实例 #### 一、简介 本文通过一个具体的示例,详细介绍了如何使用C#结合MapXtreme 2008来开发基于浏览器/服务器(B/S)架构的应用程序,并特别强调了从SQL Server数据库读取数据的关键步骤。此...
在"asp与sql网页数据库程序设计"这个主题中,我们将深入探讨如何使用ASP技术与SQL数据库进行交互,构建功能丰富的网页应用程序。以下是一些关键知识点: 1. **ASP基础**:了解ASP的工作原理,如如何在服务器端执行...
在SQL Server数据库中,缓存依赖是一个重要的性能优化机制,它允许应用程序跟踪数据库中的更改,以便在数据更新时自动更新缓存中的信息。这个实例主要适用于SQL Server 2005和2008版本,这两个版本都支持并广泛使用...
然而,在分布式服务器环境或者需要持久化存储session数据以便将来分析的场景下,开发者往往会选择将session数据存储在数据库中。 在这个文档中,作者提供了两种实现将PHP session数据存储到数据库的方法,分别适用...
- **存储位置**:与`Cookie`不同的是,`Session`中的信息是保存在服务器端的,而`Cookie`中的信息则保存在客户端(浏览器)上。 - **安全性**:由于`Session`数据存储在服务器端,因此更加安全可靠。即使客户端禁用...
- 在Struts2中,Session是由ActionContext管理的,它保存了当前线程的上下文信息,包括Session数据。 - 使用`ActionContext.getSession()`方法可以获取到HttpSession对象,从而进行Session的读写操作。 - 需要...
sqlserver数据库查看 session 与查看sql的执行计划脚本
在Java编程中,与MySQL数据库交互通常涉及到使用SQL语句来执行CRUD(创建、读取、更新、删除)操作。然而,为了提高代码的可维护性和安全性,开发者可以选择使用ORM(对象关系映射)框架,如Hibernate或MyBatis,...