当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  ASP.NET WEB群集使用SQL Server保存状态

 ASP.NET WEB群集使用SQL Server保存状态

点击次数:18 次 发布日期:2008-11-26 09:51:02 作者:源代码网
源代码网推荐     
源代码网推荐  参考以下文章
源代码网推荐  
源代码网推荐  
源代码网推荐  Using SQL Server for asp.net session state
源代码网推荐  
源代码网推荐  
源代码网推荐  ASP.NET Session State Management Using SQL Server
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  以下是我的安装过程和简要说明:
源代码网推荐  
源代码网推荐  
源代码网推荐  一、 MS SQL Server安装及设置
源代码网推荐  
源代码网推荐  
源代码网推荐  1、 按照默认设置安装MS SQL Server 2000简体中文企业版,注意用户验证采用混合验证方式,sa用户密码不能太简单。并将SQL Server数据库文件存放目录设置为D盘,SQL Server系统文件安装到默认目录中。
源代码网推荐  2、 安装MS SQL Server 2000 SP3补丁程序,确保SQL Server数据库的安全。
源代码网推荐  
源代码网推荐  二、 状态服务数据库安装及设置
源代码网推荐  
源代码网推荐  
源代码网推荐  创建数据库
源代码网推荐  • 启动“SQL查询分析器”,链接到状态服务器上安装的SQL Server数据库。
源代码网推荐  • 打开并执行InstallSqlState.sql脚本文件。默认情况下,该文件在system driveWindowsMicrosoft.NETFrameworkversion 目录下,在本服务器中,脚本文件位置为:C:WindowsMicrosoft.NETFrameworkv1.1.4322InstallSqlState.sql
源代码网推荐  • 如果采用信任链接(trusted connections)方式链接到数据库(我们不采用该方式),那么在创建状态数据库以后你必须修改数据库的拥有者(ownnership)。在“SQL查询分析器”中,运行:
源代码网推荐  
源代码网推荐  
源代码网推荐  use ASPState
源代码网推荐  exec sp_changedbowner "sa","true"
源代码网推荐  
源代码网推荐  • 如果你使用SQL验证方式链接数据库并进行访问(我们采用该方式),那么需要为Session State创建一个SQL用户,它必须拥有的最小权限为:能够执行ASPState数据库中的存储过程。
源代码网推荐  如果你不觉得危险,可以将该用户设置为ASPState数据库的dbo。
源代码网推荐  创建用户 aspnetstate ,将该用户设置为ASPState数据库和tempdb 数据库的dbo_owner角色。
源代码网推荐  
源代码网推荐  修复bug
源代码网推荐  由于InstallSqlState.sql安装在SQL Server 2000 SP3上存在访问权限的bug,因此需要进行一些修正,请按照下面的说明进行。
源代码网推荐  1、在“SQL查询分析器”中运行下列语句,设置cross-database ownership chaining
源代码网推荐  
源代码网推荐  
源代码网推荐  use master
源代码网推荐  go
源代码网推荐  EXEC sp_configure "Cross DB Ownership Chaining", "0"; RECONFIGURE
源代码网推荐  Go
源代码网推荐  
源代码网推荐  2、重新启动SQL Server,在“SQL查询分析器”中,执行下列命令
源代码网推荐  
源代码网推荐  
源代码网推荐  use master
源代码网推荐  go
源代码网推荐  EXEC sp_dboption "ASPState" , "db chaining", "true"
源代码网推荐  Go
源代码网推荐  三、 WEB服务器配置
源代码网推荐   修改WEB服务器上Web.Config中的相应配置
源代码网推荐  
源代码网推荐  <sessionState mode="SQLServer" stateConnectionString="tcpip=192.168.1.238:42424" sqlConnectionString="data source=192.168.1.238;user id=aspnetstate;password=pwd"
源代码网推荐  cookieless="false" timeout="40" />
源代码网推荐  其中,pwd用真实的密码替换。
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  另外的bug:
源代码网推荐  我在实际安装过程中,按照以上步骤可以成功,但是状态服务器重新启动以后,会出现用户没有权限访问tmpdb数据库的错误,错误信息如下:
源代码网推荐  SELECT permission denied on object "ASPStateTempApplications", database
源代码网推荐  "tempdb", owner "dbo".
源代码网推荐  INSERT permission denied on object "ASPStateTempApplications", database
源代码网推荐  "tempdb", owner "dbo".
源代码网推荐  SELECT permission denied on object "ASPStateTempApplications", database
源代码网推荐  "tempdb", owner "dbo".
源代码网推荐  
源代码网推荐  
源代码网推荐  经检查,发现每次重新启动状态服务器以后,tmpdb数据库的dbo帐号丢失,经过向微软咨询,得到的答复是“tmpdb数据库是会在每一次重启后清除dbo帐号”,
源代码网推荐  
源代码网推荐  
源代码网推荐  因此暂时的解决办法是:
源代码网推荐  将sqlserver connnectionstring 中验证的帐号,给它在sqlserver中加上system administrator的权限. 这样无论是否重新启动,我们都由权限去访问tempdb中的那两个表。这样做存在一些安全隐患,请注意系统的安全。
源代码网推荐  
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华