.Net2.0 sql state server配置
上一次折腾这个是在05年(http://www.kisssunshine.com/blogs/snow/archive/2005/12/01/3475.aspx),前两天又遇到webserver cluster session传递的问题了.当时还是.Net1.1时代,现在升级到2.0了,有些地方的配置也不尽相同,值得记录一把.
.Net 2.0对于InstallSqlState.sql和InstallPersistSqlState.sql不可以用查询分析器直接运行脚本, 取而代之的是必须用.Net2.0提供的一个工具--Aspnet_regsql.exe 更让我不能接受的是这个工具是.Net写的,这就意味着DB Server上必须有.Net2.0的环境才能玩.
[注]对于这个工具的使用,可以在MSDN上查到,或者/?看看帮助也能明白.
http://msdn2.microsoft.com/zh-cn/library/ms229862(vs.80).aspx
闲话少说,我们如果要安装State数据库在SQLServer上的话,命令行程序如下:
1.Aspnet_regsql.exe -S
localhost -E -ssadd -sstype p //这样会安装一个ASPState数据库在localhost DB上,
且执行的是InstallPersistSqlState.sql脚本, 用户状态会保存在永久数据库中,不会随着重启DB Server儿丢失
2.Aspnet_regsql.exe
-S localhost -E -ssadd -sstype p
//同样会安装ASPState数据库出来,过程中执行的脚本是InstallSqlState.sql, 用户状态保存在TempDB中,
数据库服务器重启则用户状态丢失.
卸载该State数据库的参数是-ssremove, 不过好像执行Aspnet_regsql.exe可以调出UI, 用鼠标选选倒也能卸载
接下来是web.config里面的配置
1.system.web下的sessionState节点配置:
<sessionState mode="SQLServer" sqlConnectionString="server=127.0.0.1;UID=sa;PWD=123456" cookieless="true" timeout="20"/>
2.system.web下的machineKey节点配置:
<machineKey
validationKey="3FF1E929BC0534930B0920A7B59FA698BD02DFE7"
decryptionKey="280450BB36319B474C996B506A59AEDF9B51211B1D2B7A77"
decryption="3DES" validation="SHA1"/>
由于前段web是cluster server, 这里几台webserver上的web.config中machineKey的验证值必须相同,不可以直接使用系统所默认提供的AutoGen, 上面的key是我给的例子, 实际使用中可以用工具生成出来
到此为止就基本配置完毕了.
出处:http://www.kisssunshine.com/blogs/snow/archive/2007/09/25/31075.aspx
浙公网安备 33010602011771号